Remove some extra recursion and explicitly call more methods
This commit is contained in:
parent
bb2b3d7bd0
commit
47d493537e
@ -62,6 +62,15 @@ abstract class DB_PDO extends PDO {
|
|||||||
$this->util = new $class($this);
|
$this->util = new $class($this);
|
||||||
|
|
||||||
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
|
||||||
|
// Set additional driver options, if they exist
|
||||||
|
if ( ! empty($driver_options) && is_array($driver_options))
|
||||||
|
{
|
||||||
|
foreach($driver_options as $key => $val)
|
||||||
|
{
|
||||||
|
$this->setAttribute($key, $val);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@ -191,17 +200,11 @@ abstract class DB_PDO extends PDO {
|
|||||||
/**
|
/**
|
||||||
* Quote database table name, and set prefix
|
* Quote database table name, and set prefix
|
||||||
*
|
*
|
||||||
* @param mixed $table
|
* @param string $table
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function quote_table($table)
|
public function quote_table($table)
|
||||||
{
|
{
|
||||||
// An array is only passed if it's a table with alias
|
|
||||||
if (is_array($table))
|
|
||||||
{
|
|
||||||
$table =& $table[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
// If there isn't a prefix set, just quote the table name
|
// If there isn't a prefix set, just quote the table name
|
||||||
if (empty($this->table_prefix))
|
if (empty($this->table_prefix))
|
||||||
{
|
{
|
||||||
|
@ -73,9 +73,6 @@ class Query_Builder {
|
|||||||
// Alias to $this->db->sql
|
// Alias to $this->db->sql
|
||||||
public $sql;
|
public $sql;
|
||||||
|
|
||||||
// Database table prefix
|
|
||||||
public $table_prefix = '';
|
|
||||||
|
|
||||||
// Query component order mapping
|
// Query component order mapping
|
||||||
// for complex select queries
|
// for complex select queries
|
||||||
//
|
//
|
||||||
@ -134,7 +131,6 @@ class Query_Builder {
|
|||||||
// Set the table prefix, if it exists
|
// Set the table prefix, if it exists
|
||||||
if (isset($params->prefix))
|
if (isset($params->prefix))
|
||||||
{
|
{
|
||||||
$this->table_prefix = $params->prefix;
|
|
||||||
$this->db->table_prefix = $params->prefix;
|
$this->db->table_prefix = $params->prefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,7 +230,7 @@ class Query_Builder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Quote the identifiers
|
// Quote the identifiers
|
||||||
$safe_array = array_map(array($this->db, 'quote_ident'), $fields_array);
|
$safe_array = $this->db->quote_ident($fields_array);
|
||||||
|
|
||||||
unset($fields_array);
|
unset($fields_array);
|
||||||
|
|
||||||
@ -266,10 +262,10 @@ class Query_Builder {
|
|||||||
private function _select($field, $as = FALSE)
|
private function _select($field, $as = FALSE)
|
||||||
{
|
{
|
||||||
// Escape the identifiers
|
// Escape the identifiers
|
||||||
$field = $this->quote_ident($field);
|
$field = $this->db->quote_ident($field);
|
||||||
|
|
||||||
$as = ($as !== FALSE)
|
$as = ($as !== FALSE)
|
||||||
? $this->quote_ident($as)
|
? $this->db->quote_ident($as)
|
||||||
: $field;
|
: $field;
|
||||||
|
|
||||||
return "({$field}) AS {$as} ";
|
return "({$field}) AS {$as} ";
|
||||||
@ -393,7 +389,7 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
private function _like($field, $val, $pos, $like='LIKE', $conj='AND')
|
private function _like($field, $val, $pos, $like='LIKE', $conj='AND')
|
||||||
{
|
{
|
||||||
$field = $this->quote_ident($field);
|
$field = $this->db->quote_ident($field);
|
||||||
|
|
||||||
// Add the like string into the order map
|
// Add the like string into the order map
|
||||||
$l = $field. " {$like} ?";
|
$l = $field. " {$like} ?";
|
||||||
@ -506,7 +502,7 @@ class Query_Builder {
|
|||||||
// is an operator such as >, <, !=, etc.
|
// is an operator such as >, <, !=, etc.
|
||||||
$f_array = explode(' ', trim($f));
|
$f_array = explode(' ', trim($f));
|
||||||
|
|
||||||
$item = $this->quote_ident($f_array[0]);
|
$item = $this->db->quote_ident($f_array[0]);
|
||||||
|
|
||||||
// Simple key value, or an operator
|
// Simple key value, or an operator
|
||||||
$item .= (count($f_array) === 1) ? '=?' : " {$f_array[1]} ?";
|
$item .= (count($f_array) === 1) ? '=?' : " {$f_array[1]} ?";
|
||||||
@ -604,7 +600,7 @@ class Query_Builder {
|
|||||||
// is an operator such as >, <, !=, etc.
|
// is an operator such as >, <, !=, etc.
|
||||||
$f_array = explode(' ', trim($f));
|
$f_array = explode(' ', trim($f));
|
||||||
|
|
||||||
$item = $this->quote_ident($f_array[0]);
|
$item = $this->db->quote_ident($f_array[0]);
|
||||||
|
|
||||||
// Simple key value, or an operator
|
// Simple key value, or an operator
|
||||||
$item .= (count($f_array) === 1) ? '=?' : " {$f_array[1]} ?";
|
$item .= (count($f_array) === 1) ? '=?' : " {$f_array[1]} ?";
|
||||||
@ -633,7 +629,7 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
private function _where_in($key, $val=array(), $in='IN', $conj='AND')
|
private function _where_in($key, $val=array(), $in='IN', $conj='AND')
|
||||||
{
|
{
|
||||||
$key = $this->quote_ident($key);
|
$key = $this->db->quote_ident($key);
|
||||||
$params = array_fill(0, count($val), '?');
|
$params = array_fill(0, count($val), '?');
|
||||||
|
|
||||||
foreach($val as $v)
|
foreach($val as $v)
|
||||||
@ -769,7 +765,7 @@ class Query_Builder {
|
|||||||
|
|
||||||
// Use the keys of the array to make the insert/update string
|
// Use the keys of the array to make the insert/update string
|
||||||
// Escape the field names
|
// Escape the field names
|
||||||
$this->set_array_keys = array_map(array($this->db, 'quote_ident'), $this->set_array_keys);
|
$this->set_array_keys = $this->db->quote_ident($this->set_array_keys);
|
||||||
|
|
||||||
// Generate the "set" string
|
// Generate the "set" string
|
||||||
$this->set_string = implode('=?,', $this->set_array_keys);
|
$this->set_string = implode('=?,', $this->set_array_keys);
|
||||||
@ -805,7 +801,7 @@ class Query_Builder {
|
|||||||
{
|
{
|
||||||
if (in_array($parts['combined'][$i], $parts['identifiers']) && ! is_numeric($parts['combined'][$i]))
|
if (in_array($parts['combined'][$i], $parts['identifiers']) && ! is_numeric($parts['combined'][$i]))
|
||||||
{
|
{
|
||||||
$parts['combined'][$i] = $this->quote_ident($parts['combined'][$i]);
|
$parts['combined'][$i] = $this->db->quote_ident($parts['combined'][$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -834,11 +830,11 @@ class Query_Builder {
|
|||||||
{
|
{
|
||||||
if ( ! is_scalar($field))
|
if ( ! is_scalar($field))
|
||||||
{
|
{
|
||||||
$this->group_array = array_map(array($this->db, 'quote_ident'), $field);
|
$this->group_array = $this->db->quote_ident($field);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->group_array[] = $this->quote_ident($field);
|
$this->group_array[] = $this->db->quote_ident($field);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->group_string = ' GROUP BY ' . implode(',', $this->group_array);
|
$this->group_string = ' GROUP BY ' . implode(',', $this->group_array);
|
||||||
@ -864,7 +860,7 @@ class Query_Builder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set fields for later manipulation
|
// Set fields for later manipulation
|
||||||
$field = $this->quote_ident($field);
|
$field = $this->db->quote_ident($field);
|
||||||
$this->order_array[$field] = $type;
|
$this->order_array[$field] = $type;
|
||||||
|
|
||||||
$order_clauses = array();
|
$order_clauses = array();
|
||||||
@ -1044,8 +1040,8 @@ class Query_Builder {
|
|||||||
*/
|
*/
|
||||||
public function count_all($table)
|
public function count_all($table)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT * FROM '.$this->quote_table($table);
|
$sql = 'SELECT * FROM '.$this->db->quote_table($table);
|
||||||
$res = $this->query($sql);
|
$res = $this->db->query($sql);
|
||||||
return (int) count($res->fetchAll());
|
return (int) count($res->fetchAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1278,8 +1274,8 @@ class Query_Builder {
|
|||||||
$vals = array_merge($this->values, (array) $this->where_values);
|
$vals = array_merge($this->values, (array) $this->where_values);
|
||||||
|
|
||||||
$res = ($simple)
|
$res = ($simple)
|
||||||
? $this->query($sql)
|
? $this->db->query($sql)
|
||||||
: $this->prepare_execute($sql, $vals);
|
: $this->db->prepare_execute($sql, $vals);
|
||||||
|
|
||||||
$this->reset_query();
|
$this->reset_query();
|
||||||
|
|
||||||
@ -1318,7 +1314,7 @@ class Query_Builder {
|
|||||||
{
|
{
|
||||||
$sql = '';
|
$sql = '';
|
||||||
|
|
||||||
$table = $this->quote_table($table);
|
$table = $this->db->quote_table($table);
|
||||||
|
|
||||||
switch($type)
|
switch($type)
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user