| version 1.2, 2005/11/07 20:37:25 |
version 1.3, 2011/06/17 13:56:39 |
|
|
| * @category Database |
* @category Database |
| * @package DB |
* @package DB |
| * @author Daniel Convissor <danielc@php.net> |
* @author Daniel Convissor <danielc@php.net> |
| * @copyright 1997-2005 The PHP Group |
* @copyright 1997-2007 The PHP Group |
| * @license http://www.php.net/license/3_0.txt PHP License 3.0 |
* @license http://www.php.net/license/3_0.txt PHP License 3.0 |
| * @version CVS: $Id$ |
* @version CVS: $Id$ |
| * @link http://pear.php.net/package/DB |
* @link http://pear.php.net/package/DB |
| Line 41 require_once 'DB/common.php'; |
|
| Line 41 require_once 'DB/common.php'; |
|
| * @category Database |
* @category Database |
| * @package DB |
* @package DB |
| * @author Daniel Convissor <danielc@php.net> |
* @author Daniel Convissor <danielc@php.net> |
| * @copyright 1997-2005 The PHP Group |
* @copyright 1997-2007 The PHP Group |
| * @license http://www.php.net/license/3_0.txt PHP License 3.0 |
* @license http://www.php.net/license/3_0.txt PHP License 3.0 |
| * @version Release: 1.7.6 |
* @version Release: 1.7.14RC2 |
| * @link http://pear.php.net/package/DB |
* @link http://pear.php.net/package/DB |
| * @since Class functional since Release 1.6.3 |
* @since Class functional since Release 1.6.3 |
| */ |
*/ |
| Line 114 class DB_mysqli extends DB_common |
|
| Line 114 class DB_mysqli extends DB_common |
|
| 1146 => DB_ERROR_NOSUCHTABLE, |
1146 => DB_ERROR_NOSUCHTABLE, |
| 1216 => DB_ERROR_CONSTRAINT, |
1216 => DB_ERROR_CONSTRAINT, |
| 1217 => DB_ERROR_CONSTRAINT, |
1217 => DB_ERROR_CONSTRAINT, |
| |
1356 => DB_ERROR_DIVZERO, |
| |
1451 => DB_ERROR_CONSTRAINT, |
| |
1452 => DB_ERROR_CONSTRAINT, |
| ); |
); |
| |
|
| /** |
/** |
| Line 210 class DB_mysqli extends DB_common |
|
| Line 213 class DB_mysqli extends DB_common |
|
| MYSQLI_TYPE_VAR_STRING => 'varchar', |
MYSQLI_TYPE_VAR_STRING => 'varchar', |
| MYSQLI_TYPE_STRING => 'char', |
MYSQLI_TYPE_STRING => 'char', |
| MYSQLI_TYPE_GEOMETRY => 'geometry', |
MYSQLI_TYPE_GEOMETRY => 'geometry', |
| |
/* These constants are conditionally compiled in ext/mysqli, so we'll |
| |
* define them by number rather than constant. */ |
| |
16 => 'bit', |
| |
246 => 'decimal', |
| ); |
); |
| |
|
| |
|
| Line 264 class DB_mysqli extends DB_common |
|
| Line 271 class DB_mysqli extends DB_common |
|
| * 'ssl' => true, |
* 'ssl' => true, |
| * ); |
* ); |
| * |
* |
| * $db =& DB::connect($dsn, $options); |
* $db = DB::connect($dsn, $options); |
| * if (PEAR::isError($db)) { |
* if (PEAR::isError($db)) { |
| * die($db->getMessage()); |
* die($db->getMessage()); |
| * } |
* } |
| Line 287 class DB_mysqli extends DB_common |
|
| Line 294 class DB_mysqli extends DB_common |
|
| } |
} |
| |
|
| $ini = ini_get('track_errors'); |
$ini = ini_get('track_errors'); |
| ini_set('track_errors', 1); |
@ini_set('track_errors', 1); |
| $php_errormsg = ''; |
$php_errormsg = ''; |
| |
|
| if ($this->getOption('ssl') === true) { |
if (((int) $this->getOption('ssl')) === 1) { |
| $init = mysqli_init(); |
$init = mysqli_init(); |
| mysqli_ssl_set( |
mysqli_ssl_set( |
| $init, |
$init, |
| Line 322 class DB_mysqli extends DB_common |
|
| Line 329 class DB_mysqli extends DB_common |
|
| ); |
); |
| } |
} |
| |
|
| ini_set('track_errors', $ini); |
@ini_set('track_errors', $ini); |
| |
|
| if (!$this->connection) { |
if (!$this->connection) { |
| if (($err = @mysqli_connect_error()) != '') { |
if (($err = @mysqli_connect_error()) != '') { |
| Line 372 class DB_mysqli extends DB_common |
|
| Line 379 class DB_mysqli extends DB_common |
|
| */ |
*/ |
| function simpleQuery($query) |
function simpleQuery($query) |
| { |
{ |
| $ismanip = DB::isManip($query); |
$ismanip = $this->_checkManip($query); |
| $this->last_query = $query; |
$this->last_query = $query; |
| $query = $this->modifyQuery($query); |
$query = $this->modifyQuery($query); |
| if ($this->_db) { |
if ($this->_db) { |
| Line 490 class DB_mysqli extends DB_common |
|
| Line 497 class DB_mysqli extends DB_common |
|
| */ |
*/ |
| function freeResult($result) |
function freeResult($result) |
| { |
{ |
| return @mysqli_free_result($result); |
return is_resource($result) ? mysqli_free_result($result) : false; |
| } |
} |
| |
|
| // }}} |
// }}} |
| Line 626 class DB_mysqli extends DB_common |
|
| Line 633 class DB_mysqli extends DB_common |
|
| */ |
*/ |
| function affectedRows() |
function affectedRows() |
| { |
{ |
| if (DB::isManip($this->last_query)) { |
if ($this->_last_query_manip) { |
| return @mysqli_affected_rows($this->connection); |
return @mysqli_affected_rows($this->connection); |
| } else { |
} else { |
| return 0; |
return 0; |
| Line 823 class DB_mysqli extends DB_common |
|
| Line 830 class DB_mysqli extends DB_common |
|
| |
|
| /** |
/** |
| * Quotes a string so it can be safely used as a table or column name |
* Quotes a string so it can be safely used as a table or column name |
| |
* (WARNING: using names that require this is a REALLY BAD IDEA) |
| * |
* |
| * MySQL can't handle the backtick character (<kbd>`</kbd>) in |
* WARNING: Older versions of MySQL can't handle the backtick |
| * table or column names. |
* character (<kbd>`</kbd>) in table or column names. |
| * |
* |
| * @param string $str identifier name to be quoted |
* @param string $str identifier name to be quoted |
| * |
* |
| Line 836 class DB_mysqli extends DB_common |
|
| Line 844 class DB_mysqli extends DB_common |
|
| */ |
*/ |
| function quoteIdentifier($str) |
function quoteIdentifier($str) |
| { |
{ |
| return '`' . $str . '`'; |
return '`' . str_replace('`', '``', $str) . '`'; |
| } |
} |
| |
|
| // }}} |
// }}} |
| Line 878 class DB_mysqli extends DB_common |
|
| Line 886 class DB_mysqli extends DB_common |
|
| */ |
*/ |
| function modifyLimitQuery($query, $from, $count, $params = array()) |
function modifyLimitQuery($query, $from, $count, $params = array()) |
| { |
{ |
| if (DB::isManip($query)) { |
if (DB::isManip($query) || $this->_next_query_manip) { |
| return $query . " LIMIT $count"; |
return $query . " LIMIT $count"; |
| } else { |
} else { |
| return $query . " LIMIT $from, $count"; |
return $query . " LIMIT $from, $count"; |
| Line 954 class DB_mysqli extends DB_common |
|
| Line 962 class DB_mysqli extends DB_common |
|
| function tableInfo($result, $mode = null) |
function tableInfo($result, $mode = null) |
| { |
{ |
| if (is_string($result)) { |
if (is_string($result)) { |
| |
// Fix for bug #11580. |
| |
if ($this->_db) { |
| |
if (!@mysqli_select_db($this->connection, $this->_db)) { |
| |
return $this->mysqliRaiseError(DB_ERROR_NODBSELECTED); |
| |
} |
| |
} |
| |
|
| /* |
/* |
| * Probably received a table name. |
* Probably received a table name. |
| * Create a result resource identifier. |
* Create a result resource identifier. |
| Line 1015 class DB_mysqli extends DB_common |
|
| Line 1030 class DB_mysqli extends DB_common |
|
| 'type' => isset($this->mysqli_types[$tmp->type]) |
'type' => isset($this->mysqli_types[$tmp->type]) |
| ? $this->mysqli_types[$tmp->type] |
? $this->mysqli_types[$tmp->type] |
| : 'unknown', |
: 'unknown', |
| 'len' => $tmp->max_length, |
// http://bugs.php.net/?id=36579 |
| |
'len' => $tmp->length, |
| 'flags' => $flags, |
'flags' => $flags, |
| ); |
); |
| |
|