mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12214 201d5d3c-b55e-5fd7-737f-ddc643e51545
78 lines
1.7 KiB
PHP
78 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* @author NHN (developers@xpressengine.com)
|
|
* @package /classes/db/queryparts/condition
|
|
* @version 0.1
|
|
*/
|
|
class ConditionWithArgument extends Condition
|
|
{
|
|
/**
|
|
* constructor
|
|
* @param string $column_name
|
|
* @param mixed $argument
|
|
* @param string $operation
|
|
* @param string $pipe
|
|
* @return void
|
|
*/
|
|
function ConditionWithArgument($column_name, $argument, $operation, $pipe = "")
|
|
{
|
|
if($argument === null) { $this->_show = false; return; }
|
|
parent::Condition($column_name, $argument, $operation, $pipe);
|
|
$this->_value = $argument->getValue();
|
|
}
|
|
|
|
function getArgument()
|
|
{
|
|
if(!$this->show()) return;
|
|
return $this->argument;
|
|
}
|
|
|
|
/**
|
|
* change string without value
|
|
* @return string
|
|
*/
|
|
function toStringWithoutValue()
|
|
{
|
|
$value = $this->argument->getUnescapedValue();
|
|
|
|
if(is_array($value))
|
|
{
|
|
$q = '';
|
|
foreach ($value as $v) $q .= '?,';
|
|
if($q !== '') $q = substr($q, 0, -1);
|
|
$q = '(' . $q . ')';
|
|
}
|
|
else
|
|
{
|
|
// Prepared statements: column names should not be sent as query arguments, but instead concatenated to query string
|
|
if($this->argument->isColumnName())
|
|
{
|
|
$q = $value;
|
|
}
|
|
else
|
|
{
|
|
$q = '?';
|
|
}
|
|
}
|
|
return $this->pipe . ' ' . $this->getConditionPart($q);
|
|
}
|
|
|
|
/**
|
|
* @return boolean
|
|
*/
|
|
function show()
|
|
{
|
|
if(!isset($this->_show))
|
|
{
|
|
if(!$this->argument->isValid()) $this->_show = false;
|
|
if($this->_value === '\'\'') $this->_show = false;
|
|
if(!isset($this->_show))
|
|
{
|
|
return parent::show();
|
|
}
|
|
}
|
|
return $this->_show;
|
|
}
|
|
}
|
|
/* End of file ConditionWithArgument.class.php */
|
|
/* Location: ./classes/db/queryparts/condition/ConditionWithArgument.class.php */
|