diff options
author | Rick Ellis <rick.ellis@ellislab.com> | 2008-10-26 23:46:55 +0100 |
---|---|---|
committer | Rick Ellis <rick.ellis@ellislab.com> | 2008-10-26 23:46:55 +0100 |
commit | a0e86293949ff7761cca573853e54146d76f9ba7 (patch) | |
tree | 052316b67913584a8e2697c7977eccb3e5dde416 /system/database/drivers/odbc | |
parent | 1358485a01d9d0137b59dc2edc6249c42025e26b (diff) |
Fixed a bug in which identifers were not being escaped properly when reserved characters were used
Diffstat (limited to 'system/database/drivers/odbc')
-rw-r--r-- | system/database/drivers/odbc/odbc_driver.php | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index 1f0377145..3c6f01542 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -399,6 +399,17 @@ class CI_DB_odbc_driver extends CI_DB { {
return $item;
}
+
+ foreach ($this->_reserved_identifiers as $id)
+ {
+ if (strpos($item, '.'.$id) !== FALSE)
+ {
+ $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
+ // remove duplicates if the user already included the escape
+ return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
+ }
+ }
if (strpos($item, '.') !== FALSE)
{
|