mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 02:31:40 +09:00
join query사용시에 value에 . 이 있을 경우 query fail이 나는 문제 해결
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2934 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
cc74a3f5ec
commit
637e953a34
8 changed files with 13 additions and 20 deletions
|
|
@ -316,12 +316,17 @@
|
|||
* like, like_prefix의 경우 value자체가 변경됨
|
||||
* type == number가 아니면 addQuotes()를 하고 ' ' 로 묶음
|
||||
**/
|
||||
function getConditionValue($name, $value, $operation, $type) {
|
||||
function getConditionValue($name, $value, $operation, $type, $column_type) {
|
||||
if($type == 'number') {
|
||||
if(strpos($value,',')===false && strpos($value,'(')===false) return (int)$value;
|
||||
return $value;
|
||||
}
|
||||
|
||||
if(strpos($value,'.')!==false) {
|
||||
list($column_name) = explode('.',$value);
|
||||
if($column_type[$column_name]) return $value;
|
||||
}
|
||||
|
||||
$value = preg_replace('/(^\'|\'$){1}/','',$value);
|
||||
|
||||
switch($operation) {
|
||||
|
|
@ -339,9 +344,6 @@
|
|||
break;
|
||||
}
|
||||
|
||||
|
||||
if(strpos($name,'.')!==false && strpos($value,'.')!==false) return $value;
|
||||
|
||||
return "'".$this->addQuotes($value)."'";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -389,7 +389,7 @@
|
|||
$type = $this->getColumnType($output->column_type,$name);
|
||||
$pipe = $v['pipe'];
|
||||
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type);
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type, $output->column_type);
|
||||
if(!$value) $value = $v['value'];
|
||||
if(strpos($name,'.')===false) $name = '"'.$name.'"';
|
||||
|
||||
|
|
|
|||
|
|
@ -374,7 +374,7 @@
|
|||
$type = $this->getColumnType($output->column_type,$name);
|
||||
$pipe = $v['pipe'];
|
||||
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type);
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type, $output->column_type);
|
||||
if(!$value) $value = $v['value'];
|
||||
$str = $this->getConditionPart($name, $value, $operation);
|
||||
if($sub_condition) $sub_condition .= ' '.$pipe.' ';
|
||||
|
|
|
|||
|
|
@ -383,7 +383,7 @@
|
|||
$type = $this->getColumnType($output->column_type,$name);
|
||||
$pipe = $v['pipe'];
|
||||
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type);
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type, $output->column_type);
|
||||
if(!$value) $value = $v['value'];
|
||||
$str = $this->getConditionPart($name, $value, $operation);
|
||||
if($sub_condition) $sub_condition .= ' '.$pipe.' ';
|
||||
|
|
|
|||
|
|
@ -360,7 +360,7 @@
|
|||
$type = $this->getColumnType($output->column_type,$name);
|
||||
$pipe = $v['pipe'];
|
||||
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type);
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type, $output->column_type);
|
||||
if(!$value) $value = $v['value'];
|
||||
$str = $this->getConditionPart($name, $value, $operation);
|
||||
if($sub_condition) $sub_condition .= ' '.$pipe.' ';
|
||||
|
|
|
|||
|
|
@ -389,7 +389,7 @@
|
|||
$type = $this->getColumnType($output->column_type,$name);
|
||||
$pipe = $v['pipe'];
|
||||
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type);
|
||||
$value = $this->getConditionValue($name, $value, $operation, $type, $output->column_type);
|
||||
if(!$value) $value = $v['value'];
|
||||
|
||||
$str = $this->getConditionPart($name, $value, $operation);
|
||||
|
|
|
|||
|
|
@ -194,16 +194,7 @@
|
|||
else $args->s_is_secret = '';
|
||||
break;
|
||||
case 'tag' :
|
||||
$oDB = &DB::getInstance();
|
||||
$tmp_str_arr = explode(' ',$search_keyword);
|
||||
$tmp_count = count($tmp_str_arr);
|
||||
$tag_arr = array();
|
||||
for($i=0;$i<$tmp_count;$i++) {
|
||||
$tmp_str = trim($tmp_str_arr[$i]);
|
||||
if(!$tmp_str) continue;
|
||||
$tag_arr[] = $oDB->addQuotes($tmp_str);
|
||||
}
|
||||
$args->s_tags = "'".implode("','",$tag_arr);
|
||||
$args->s_tags = str_replace(' ','%',$search_keyword);
|
||||
$query_id = 'document.getDocumentListWithinTag';
|
||||
break;
|
||||
case 'readed_count' :
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<conditions>
|
||||
<condition operation="in" column="documents.module_srl" var="module_srl" filter="number" />
|
||||
<condition operation="equal" column="documents.document_srl" default="tags.document_srl" notnull="notnull" pipe="and" />
|
||||
<condition operation="in" column="tags.tag" var="s_tags" notnull="notnull" pipe="and" />
|
||||
<condition operation="like" column="tags.tag" var="s_tags" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="documents.list_order" order="asc" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue