Streamline a few query builder methods
This commit is contained in:
parent
00cfc498b9
commit
b9e2dc46c9
@ -463,33 +463,21 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
public function or_like($field, $val, $pos='both')
|
public function or_like($field, $val, $pos='both')
|
||||||
{
|
{
|
||||||
$field = $this->quote_ident($field);
|
// Do the like method
|
||||||
|
$this->like($field, $val, $pos);
|
||||||
|
|
||||||
// Add the like string into the order map
|
|
||||||
$l = $field. ' LIKE ?';
|
$l = $field. ' LIKE ?';
|
||||||
|
|
||||||
if ($pos == 'before')
|
// Pop the incorrect query mapping off of the array
|
||||||
{
|
array_pop($this->query_map);
|
||||||
$val = "%{$val}";
|
|
||||||
}
|
|
||||||
elseif ($pos == 'after')
|
|
||||||
{
|
|
||||||
$val = "{$val}%";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$val = "%{$val}%";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// Add the like string into the order map
|
||||||
$this->query_map[] = array(
|
$this->query_map[] = array(
|
||||||
'type' => 'like',
|
'type' => 'like',
|
||||||
'conjunction' => (empty($this->query_map)) ? 'WHERE ' : ' OR ',
|
'conjunction' => (empty($this->query_map)) ? 'WHERE ' : ' OR ',
|
||||||
'string' => $l
|
'string' => $l
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add to the values array
|
|
||||||
$this->values[] = $val;
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,33 +493,21 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
public function not_like($field, $val, $pos='both')
|
public function not_like($field, $val, $pos='both')
|
||||||
{
|
{
|
||||||
$field = $this->quote_ident($field);
|
// Do the like method
|
||||||
|
$this->like($field, $val, $pos);
|
||||||
|
|
||||||
|
// Pop the incorrect query mapping off of the array
|
||||||
|
array_pop($this->query_map);
|
||||||
|
|
||||||
// Add the like string into the order map
|
// Add the like string into the order map
|
||||||
$l = $field. ' NOT LIKE ?';
|
$l = $field. ' NOT LIKE ?';
|
||||||
|
|
||||||
if ($pos == 'before')
|
|
||||||
{
|
|
||||||
$val = "%{$val}";
|
|
||||||
}
|
|
||||||
elseif ($pos == 'after')
|
|
||||||
{
|
|
||||||
$val = "{$val}%";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$val = "%{$val}%";
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->query_map[] = array(
|
$this->query_map[] = array(
|
||||||
'type' => 'like',
|
'type' => 'like',
|
||||||
'conjunction' => (empty($this->query_map)) ? ' WHERE ' : ' AND ',
|
'conjunction' => (empty($this->query_map)) ? ' WHERE ' : ' AND ',
|
||||||
'string' => $l
|
'string' => $l
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add to the values array
|
|
||||||
$this->values[] = $val;
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -547,33 +523,21 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
public function or_not_like($field, $val, $pos='both')
|
public function or_not_like($field, $val, $pos='both')
|
||||||
{
|
{
|
||||||
$field = $this->quote_ident($field);
|
// Do the like method
|
||||||
|
$this->like($field, $val, $pos);
|
||||||
|
|
||||||
|
// Pop the incorrect query mapping off of the array
|
||||||
|
array_pop($this->query_map);
|
||||||
|
|
||||||
// Add the like string into the order map
|
// Add the like string into the order map
|
||||||
$l = $field. ' NOT LIKE ?';
|
$l = $field. ' NOT LIKE ?';
|
||||||
|
|
||||||
if ($pos == 'before')
|
|
||||||
{
|
|
||||||
$val = "%{$val}";
|
|
||||||
}
|
|
||||||
elseif ($pos == 'after')
|
|
||||||
{
|
|
||||||
$val = "{$val}%";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$val = "%{$val}%";
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->query_map[] = array(
|
$this->query_map[] = array(
|
||||||
'type' => 'like',
|
'type' => 'like',
|
||||||
'conjunction' => (empty($this->query_map)) ? ' WHERE ' : ' OR ',
|
'conjunction' => (empty($this->query_map)) ? ' WHERE ' : ' OR ',
|
||||||
'string' => $l
|
'string' => $l
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add to the values array
|
|
||||||
$this->values[] = $val;
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -801,14 +765,15 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
public function or_where_in($field, $val=array())
|
public function or_where_in($field, $val=array())
|
||||||
{
|
{
|
||||||
|
// Do the were_in method
|
||||||
|
$this->where_in($field, $val);
|
||||||
|
|
||||||
|
// Pop the incorrect query mapping off of the array
|
||||||
|
array_pop($this->query_map);
|
||||||
|
|
||||||
$field = $this->quote_ident($field);
|
$field = $this->quote_ident($field);
|
||||||
$params = array_fill(0, count($val), '?');
|
$params = array_fill(0, count($val), '?');
|
||||||
|
|
||||||
foreach($val as $v)
|
|
||||||
{
|
|
||||||
$this->values[] = $v;
|
|
||||||
}
|
|
||||||
|
|
||||||
$string = $field . ' IN ('.implode(',', $params).') ';
|
$string = $field . ' IN ('.implode(',', $params).') ';
|
||||||
|
|
||||||
$this->query_map[] = array(
|
$this->query_map[] = array(
|
||||||
@ -932,7 +897,6 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
public function join($table, $condition, $type='')
|
public function join($table, $condition, $type='')
|
||||||
{
|
{
|
||||||
// Paste it back together
|
|
||||||
$table = implode(" ", array_map(array($this->db, 'quote_ident'), explode(' ', trim($table))));
|
$table = implode(" ", array_map(array($this->db, 'quote_ident'), explode(' ', trim($table))));
|
||||||
//$condition = preg_replace('`(\W)`', " $1 ", $condition);
|
//$condition = preg_replace('`(\W)`', " $1 ", $condition);
|
||||||
$cond_array = explode(' ', trim($condition));
|
$cond_array = explode(' ', trim($condition));
|
||||||
@ -1373,7 +1337,7 @@ class Query_Builder {
|
|||||||
* @param string $table
|
* @param string $table
|
||||||
* @return $string
|
* @return $string
|
||||||
*/
|
*/
|
||||||
private function _compile($type='', $table="")
|
private function _compile($type='', $table='')
|
||||||
{
|
{
|
||||||
$sql = '';
|
$sql = '';
|
||||||
|
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user