summaryrefslogtreecommitdiffstats
path: root/system/database/drivers/pdo
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-11-20 20:18:08 +0100
committerAndrey Andreev <narf@bofh.bg>2012-11-20 20:18:08 +0100
commit3a5efc291ac17a8a9886be25f6b430796969d154 (patch)
treefd1489bf5117bf2d8b08c0f6ee2282e9ad869e9d /system/database/drivers/pdo
parentd337a2621d36aebd0747b4e10a61b98bb13a2793 (diff)
Fix issue #2015
Diffstat (limited to 'system/database/drivers/pdo')
-rw-r--r--system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php105
1 files changed, 20 insertions, 85 deletions
diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php
index 21edeebbd..803cc24e6 100644
--- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php
+++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php
@@ -110,6 +110,26 @@ class CI_DB_pdo_pgsql_driver extends CI_DB_pdo_driver {
// --------------------------------------------------------------------
/**
+ * "Smart" Escape String
+ *
+ * Escapes data based on type
+ *
+ * @param string $str
+ * @return mixed
+ */
+ public function escape($str)
+ {
+ if (is_bool($str))
+ {
+ return ($str) ? 'TRUE' : 'FALSE';
+ }
+
+ return parent::escape($str);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* ORDER BY
*
* @param string $orderby
@@ -311,91 +331,6 @@ class CI_DB_pdo_pgsql_driver extends CI_DB_pdo_driver {
return $sql.' LIMIT '.$this->qb_limit.($this->qb_offset ? ' OFFSET '.$this->qb_offset : '');
}
- // --------------------------------------------------------------------
-
- /**
- * WHERE, HAVING
- *
- * Called by where(), or_where(), having(), or_having()
- *
- * @param string 'qb_where' or 'qb_having'
- * @param mixed
- * @param mixed
- * @param string
- * @param bool
- * @return object
- */
- protected function _wh($qb_key, $key, $value = NULL, $type = 'AND ', $escape = NULL)
- {
- $qb_cache_key = ($qb_key === 'qb_having') ? 'qb_cache_having' : 'qb_cache_where';
-
- if ( ! is_array($key))
- {
- $key = array($key => $value);
- }
-
- // If the escape value was not set will will base it on the global setting
- is_bool($escape) OR $escape = $this->_protect_identifiers;
-
- foreach ($key as $k => $v)
- {
- $prefix = (count($this->$qb_key) === 0 && count($this->$qb_cache_key) === 0)
- ? $this->_group_get_type('')
- : $this->_group_get_type($type);
-
- if (is_null($v) && ! $this->_has_operator($k))
- {
- // value appears not to have been set, assign the test to IS NULL
- $k .= ' IS NULL';
- }
-
- if ( ! is_null($v))
- {
- if (is_bool($v))
- {
- $v = ' '.($v ? 'TRUE' : 'FALSE');
- }
- elseif ($escape === TRUE)
- {
- $v = ' '.(is_int($v) ? $v : $this->escape($v));
- }
-
- if ( ! $this->_has_operator($k))
- {
- $k .= ' = ';
- }
- }
-
- $this->{$qb_key}[] = array('condition' => $prefix.$k.$v, 'escape' => $escape);
- if ($this->qb_caching === TRUE)
- {
- $this->{$qb_cache_key}[] = array('condition' => $prefix.$k.$v, 'escape' => $escape);
- $this->qb_cache_exists[] = substr($qb_key, 3);
- }
-
- }
-
- return $this;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Is literal
- *
- * Determines if a string represents a literal value or a field name
- *
- * @param string $str
- * @return bool
- */
- protected function _is_literal($str)
- {
- $str = trim($str);
-
- return (empty($str) OR ctype_digit($str) OR $str[0] === "'" OR in_array($str, array('TRUE', 'FALSE'), TRUE));
- }
-
-
}
/* End of file pdo_pgsql_driver.php */