1, 'notin'=>1, 'not_in'=>1, 'between'=>1); if(isset($value) && isset($operationList[$operation]) && !is_array($value) && $value != '') { $value = str_replace(' ', '', $value); $value = str_replace('\'', '', $value); $value = explode(',', $value); } parent::Argument($name, $value); $this->operation = $operation; } /** * create condition value. set $this->value * @return void */ function createConditionValue() { if(!isset($this->value)) return; $operation = $this->operation; $value = $this->value; switch($operation) { case 'like_prefix' : if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1') { $this->value = '^' . str_replace('%', '(.*)', preg_quote($value)); } else $this->value = $value.'%'; break; case 'like_tail' : if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1') $this->value = str_replace('%', '(.*)', preg_quote($value)) . '$'; else $this->value = '%'.$value; break; case 'like' : if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1') { $this->value = str_replace('%', '(.*)', preg_quote($value)); } else $this->value = '%'.$value.'%'; break; case 'notlike' : $this->value = '%'.$value.'%'; break; case 'notlike_prefix' : $this->value = $value.'%'; break; case 'notlike_tail' : $this->value = '%'.$value; break; case 'in': if(!is_array($value)) $this->value = array($value); break; case 'notin': case 'not_in': if(!is_array($value)) $this->value = array($value); break; } } /** * Since ConditionArgument is used in WHERE clause, * where the argument value is compared to a table column, * it is assumed that all arguments have type. There are cases though * where the column does not have any type - if it was removed from * the XML schema for example - see the is_secret column in xe_documents table. * In this case, the column type is retrieved according to argument * value type (using the PHP function is_numeric). * * @return type string */ function getType() { if($this->type) { return $this->type; } else if(!is_numeric($this->value)) { return 'varchar'; } else { return ''; } } function setColumnType($column_type) { if(!isset($this->value)) return; if($column_type === '') return; $this->type = $column_type; } } /* End of file ConditionArgument.class.php */ /* Location: ./classes/xml/xmlquery/argument/ConditionArgument.class.php */