mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 02:31:40 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@13186 201d5d3c-b55e-5fd7-737f-ddc643e51545
99 lines
1.9 KiB
PHP
99 lines
1.9 KiB
PHP
<?php
|
|
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
|
|
|
/**
|
|
* @author NAVER (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 */
|