mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
Issue 2191: XML query condition 'like' error.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10956 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
650910ff53
commit
2681ef5502
3 changed files with 74 additions and 37 deletions
|
|
@ -53,50 +53,62 @@
|
|||
$this->operation = $condition->attrs->operation;
|
||||
$this->pipe = $condition->attrs->pipe;
|
||||
$dbParser = DB::getParser();
|
||||
$this->column_name = $dbParser->parseExpression($condition->attrs->column);
|
||||
$this->column_name = $dbParser->parseExpression($condition->attrs->column);
|
||||
|
||||
// If default value is column name, it should be escaped
|
||||
if($isColumnName = strpos($condition->attrs->default, '.')){
|
||||
$condition->attrs->default = $dbParser->parseColumnName($condition->attrs->default);
|
||||
}
|
||||
// If default value is column name, it should be escaped
|
||||
if($isColumnName = (strpos($condition->attrs->default, '.') !== false
|
||||
&& strpos($condition->attrs->default, '%') === false ))
|
||||
{
|
||||
$condition->attrs->default = $dbParser->parseColumnName($condition->attrs->default);
|
||||
}
|
||||
|
||||
if($condition->node_name == 'query'){
|
||||
$this->query = new QueryTag($condition, true);
|
||||
$this->default_column = $this->query->toString();
|
||||
}
|
||||
else if($condition->attrs->var && !strpos($condition->attrs->var, '.')){
|
||||
if($condition->node_name == 'query')
|
||||
{
|
||||
$this->query = new QueryTag($condition, TRUE);
|
||||
$this->default_column = $this->query->toString();
|
||||
}
|
||||
else if($condition->attrs->var && !strpos($condition->attrs->var, '.'))
|
||||
{
|
||||
$this->argument = new QueryArgument($condition);
|
||||
$this->argument_name = $this->argument->getArgumentName();
|
||||
}
|
||||
else {
|
||||
if(isset($condition->attrs->default)){
|
||||
$operationList = array('in'=>1, 'between'=>1, 'not in'=>1);
|
||||
if(isset($operationList[$this->operation])){
|
||||
$default_value = $condition->attrs->default;
|
||||
if(strpos($default_value, "'") !== false)
|
||||
$default_value = "\"" . $default_value . "\"";
|
||||
else
|
||||
$default_value = "'" . $default_value . "'";
|
||||
}
|
||||
else {
|
||||
$default_value_object = new DefaultValue($this->column_name, $condition->attrs->default);
|
||||
$default_value = $default_value_object->toString();
|
||||
else
|
||||
{
|
||||
if(isset($condition->attrs->default))
|
||||
{
|
||||
$operationList = array('in' => 1, 'between' => 1, 'not in' => 1);
|
||||
if(isset($operationList[$this->operation]))
|
||||
{
|
||||
$default_value = $condition->attrs->default;
|
||||
if(strpos($default_value, "'") !== FALSE)
|
||||
$default_value = "\"" . $default_value . "\"";
|
||||
else
|
||||
{
|
||||
$default_value = "'" . $default_value . "'";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$default_value_object = new DefaultValue($this->column_name, $condition->attrs->default);
|
||||
$default_value = $default_value_object->toString();
|
||||
|
||||
if($default_value_object->isStringFromFunction()){
|
||||
$default_value = '"\'".' . $default_value . '."\'"';
|
||||
}
|
||||
if($default_value_object->isStringFromFunction())
|
||||
{
|
||||
$default_value = '"\'".' . $default_value . '."\'"';
|
||||
}
|
||||
|
||||
if($default_value_object->isString() && !$isColumnName && !is_numeric( $condition->attrs->default)){
|
||||
if(strpos($default_value, "'") !== false)
|
||||
$default_value = "\"" . $default_value . "\"";
|
||||
else
|
||||
$default_value = "'" . $default_value . "'";
|
||||
}
|
||||
}
|
||||
$this->default_column = $default_value;
|
||||
}
|
||||
else
|
||||
$this->default_column = "'" . $dbParser->parseColumnName($condition->attrs->var) . "'" ;
|
||||
if($default_value_object->isString() && !$isColumnName && !is_numeric($condition->attrs->default))
|
||||
{
|
||||
if(strpos($default_value, "'") !== FALSE)
|
||||
$default_value = "\"" . $default_value . "\"";
|
||||
else
|
||||
$default_value = "'" . $default_value . "'";
|
||||
}
|
||||
}
|
||||
$this->default_column = $default_value;
|
||||
}
|
||||
else
|
||||
$this->default_column = "'" . $dbParser->parseColumnName($condition->attrs->var) . "'";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue