Update to CodeIgniter 3.19
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -916,6 +916,7 @@ abstract class CI_DB_driver {
|
||||
|
||||
if ($this->_trans_begin())
|
||||
{
|
||||
$this->_trans_status = TRUE;
|
||||
$this->_trans_depth++;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -980,7 +981,7 @@ abstract class CI_DB_driver {
|
||||
*/
|
||||
public function compile_binds($sql, $binds)
|
||||
{
|
||||
if (empty($binds) OR empty($this->bind_marker) OR strpos($sql, $this->bind_marker) === FALSE)
|
||||
if (empty($this->bind_marker) OR strpos($sql, $this->bind_marker) === FALSE)
|
||||
{
|
||||
return $sql;
|
||||
}
|
||||
@@ -1000,7 +1001,7 @@ abstract class CI_DB_driver {
|
||||
$ml = strlen($this->bind_marker);
|
||||
|
||||
// Make sure not to replace a chunk inside a string that happens to match the bind marker
|
||||
if ($c = preg_match_all("/'[^']*'/i", $sql, $matches))
|
||||
if ($c = preg_match_all("/'[^']*'|\"[^\"]*\"/i", $sql, $matches))
|
||||
{
|
||||
$c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i',
|
||||
str_replace($matches[0],
|
||||
@@ -1044,7 +1045,7 @@ abstract class CI_DB_driver {
|
||||
*/
|
||||
public function is_write_type($sql)
|
||||
{
|
||||
return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX)\s/i', $sql);
|
||||
return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX|MERGE)\s/i', $sql);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
@@ -1173,14 +1174,14 @@ abstract class CI_DB_driver {
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Platform-dependant string escape
|
||||
* Platform-dependent string escape
|
||||
*
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
protected function _escape_str($str)
|
||||
{
|
||||
return str_replace("'", "''", remove_invisible_characters($str));
|
||||
return str_replace("'", "''", remove_invisible_characters($str, FALSE));
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
@@ -1527,7 +1528,7 @@ abstract class CI_DB_driver {
|
||||
return 'UPDATE '.$table.' SET '.implode(', ', $valstr)
|
||||
.$this->_compile_wh('qb_where')
|
||||
.$this->_compile_order_by()
|
||||
.($this->qb_limit ? ' LIMIT '.$this->qb_limit : '');
|
||||
.($this->qb_limit !== FALSE ? ' LIMIT '.$this->qb_limit : '');
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
@@ -1925,15 +1926,19 @@ abstract class CI_DB_driver {
|
||||
$i++;
|
||||
}
|
||||
|
||||
// dbprefix may've already been applied, with or without the identifier escaped
|
||||
$ec = '(?<ec>'.preg_quote(is_array($this->_escape_char) ? $this->_escape_char[0] : $this->_escape_char).')?';
|
||||
isset($ec[0]) && $ec .= '?'; // Just in case someone has disabled escaping by forcing an empty escape character
|
||||
|
||||
// Verify table prefix and replace if necessary
|
||||
if ($this->swap_pre !== '' && strpos($parts[$i], $this->swap_pre) === 0)
|
||||
if ($this->swap_pre !== '' && preg_match('#^'.$ec.preg_quote($this->swap_pre).'#', $parts[$i]))
|
||||
{
|
||||
$parts[$i] = preg_replace('/^'.$this->swap_pre.'(\S+?)/', $this->dbprefix.'\\1', $parts[$i]);
|
||||
$parts[$i] = preg_replace('#^'.$ec.preg_quote($this->swap_pre).'(\S+?)#', '\\1'.$this->dbprefix.'\\2', $parts[$i]);
|
||||
}
|
||||
// We only add the table prefix if it does not already exist
|
||||
elseif (strpos($parts[$i], $this->dbprefix) !== 0)
|
||||
else
|
||||
{
|
||||
$parts[$i] = $this->dbprefix.$parts[$i];
|
||||
preg_match('#^'.$ec.preg_quote($this->dbprefix).'#', $parts[$i]) OR $parts[$i] = $this->dbprefix.$parts[$i];
|
||||
}
|
||||
|
||||
// Put the parts back together
|
||||
|
Reference in New Issue
Block a user