common.php
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 2,015 行 · 第 1/5 页
PHP
2,015 行
<?php/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: *//** * Contains the DB_common base class * * PHP versions 4 and 5 * * LICENSE: This source file is subject to version 3.0 of the PHP license * that is available through the world-wide-web at the following URI: * http://www.php.net/license/3_0.txt. If you did not receive a copy of * the PHP License and are unable to obtain it through the web, please * send a note to license@php.net so we can mail you a copy immediately. * * @category Database * @package DB * @author Stig Bakken <ssb@php.net> * @author Tomas V.V. Cox <cox@idecnet.com> * @author Daniel Convissor <danielc@php.net> * @copyright 1997-2005 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 * @version CVS: $Id: common.php,v 1.137 2005/04/07 14:27:35 danielc Exp $ * @link http://pear.php.net/package/DB *//** * Obtain the PEAR class so it can be extended from */require_once 'PEAR.php';/** * DB_common is the base class from which each database driver class extends * * All common methods are declared here. If a given DBMS driver contains * a particular method, that method will overload the one here. * * @category Database * @package DB * @author Stig Bakken <ssb@php.net> * @author Tomas V.V. Cox <cox@idecnet.com> * @author Daniel Convissor <danielc@php.net> * @copyright 1997-2005 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 * @version Release: 1.7.6 * @link http://pear.php.net/package/DB */class DB_common extends PEAR{ // {{{ properties /** * The current default fetch mode * @var integer */ var $fetchmode = DB_FETCHMODE_ORDERED; /** * The name of the class into which results should be fetched when * DB_FETCHMODE_OBJECT is in effect * * @var string */ var $fetchmode_object_class = 'stdClass'; /** * Was a connection present when the object was serialized()? * @var bool * @see DB_common::__sleep(), DB_common::__wake() */ var $was_connected = null; /** * The most recently executed query * @var string */ var $last_query = ''; /** * Run-time configuration options * * The 'optimize' option has been deprecated. Use the 'portability' * option instead. * * @var array * @see DB_common::setOption() */ var $options = array( 'result_buffering' => 500, 'persistent' => false, 'ssl' => false, 'debug' => 0, 'seqname_format' => '%s_seq', 'autofree' => false, 'portability' => DB_PORTABILITY_NONE, 'optimize' => 'performance', // Deprecated. Use 'portability'. ); /** * The parameters from the most recently executed query * @var array * @since Property available since Release 1.7.0 */ var $last_parameters = array(); /** * The elements from each prepared statement * @var array */ var $prepare_tokens = array(); /** * The data types of the various elements in each prepared statement * @var array */ var $prepare_types = array(); /** * The prepared queries * @var array */ var $prepared_queries = array(); // }}} // {{{ DB_common /** * This constructor calls <kbd>$this->PEAR('DB_Error')</kbd> * * @return void */ function DB_common() { $this->PEAR('DB_Error'); } // }}} // {{{ __sleep() /** * Automatically indicates which properties should be saved * when PHP's serialize() function is called * * @return array the array of properties names that should be saved */ function __sleep() { if ($this->connection) { // Don't disconnect(), people use serialize() for many reasons $this->was_connected = true; } else { $this->was_connected = false; } if (isset($this->autocommit)) { return array('autocommit', 'dbsyntax', 'dsn', 'features', 'fetchmode', 'fetchmode_object_class', 'options', 'was_connected', ); } else { return array('dbsyntax', 'dsn', 'features', 'fetchmode', 'fetchmode_object_class', 'options', 'was_connected', ); } } // }}} // {{{ __wakeup() /** * Automatically reconnects to the database when PHP's unserialize() * function is called * * The reconnection attempt is only performed if the object was connected * at the time PHP's serialize() function was run. * * @return void */ function __wakeup() { if ($this->was_connected) { $this->connect($this->dsn, $this->options); } } // }}} // {{{ __toString() /** * Automatic string conversion for PHP 5 * * @return string a string describing the current PEAR DB object * * @since Method available since Release 1.7.0 */ function __toString() { $info = strtolower(get_class($this)); $info .= ': (phptype=' . $this->phptype . ', dbsyntax=' . $this->dbsyntax . ')'; if ($this->connection) { $info .= ' [connected]'; } return $info; } // }}} // {{{ toString() /** * DEPRECATED: String conversion method * * @return string a string describing the current PEAR DB object * * @deprecated Method deprecated in Release 1.7.0 */ function toString() { return $this->__toString(); } // }}} // {{{ quoteString() /** * DEPRECATED: Quotes a string so it can be safely used within string * delimiters in a query * * @param string $string the string to be quoted * * @return string the quoted string * * @see DB_common::quoteSmart(), DB_common::escapeSimple() * @deprecated Method deprecated some time before Release 1.2 */ function quoteString($string) { $string = $this->quote($string); if ($string{0} == "'") { return substr($string, 1, -1); } return $string; } // }}} // {{{ quote() /** * DEPRECATED: Quotes a string so it can be safely used in a query * * @param string $string the string to quote * * @return string the quoted string or the string <samp>NULL</samp> * if the value submitted is <kbd>null</kbd>. * * @see DB_common::quoteSmart(), DB_common::escapeSimple() * @deprecated Deprecated in release 1.6.0 */ function quote($string = null) { return ($string === null) ? 'NULL' : "'" . str_replace("'", "''", $string) . "'"; } // }}} // {{{ quoteIdentifier() /** * Quotes a string so it can be safely used as a table or column name * * Delimiting style depends on which database driver is being used. * * NOTE: just because you CAN use delimited identifiers doesn't mean * you SHOULD use them. In general, they end up causing way more * problems than they solve. * * Portability is broken by using the following characters inside * delimited identifiers: * + backtick (<kbd>`</kbd>) -- due to MySQL * + double quote (<kbd>"</kbd>) -- due to Oracle * + brackets (<kbd>[</kbd> or <kbd>]</kbd>) -- due to Access * * Delimited identifiers are known to generally work correctly under * the following drivers: * + mssql * + mysql * + mysqli * + oci8 * + odbc(access) * + odbc(db2) * + pgsql * + sqlite * + sybase (must execute <kbd>set quoted_identifier on</kbd> sometime * prior to use) * * InterBase doesn't seem to be able to use delimited identifiers * via PHP 4. They work fine under PHP 5. * * @param string $str the identifier name to be quoted * * @return string the quoted identifier * * @since Method available since Release 1.6.0 */ function quoteIdentifier($str) { return '"' . str_replace('"', '""', $str) . '"'; } // }}} // {{{ quoteSmart() /** * Formats input so it can be safely used in a query * * The output depends on the PHP data type of input and the database * type being used. * * @param mixed $in the data to be formatted * * @return mixed the formatted data. The format depends on the input's * PHP type: * <ul> * <li> * <kbd>input</kbd> -> <samp>returns</samp> * </li> * <li> * <kbd>null</kbd> -> the string <samp>NULL</samp> * </li> * <li> * <kbd>integer</kbd> or <kbd>double</kbd> -> the unquoted number * </li> * <li> * <kbd>bool</kbd> -> output depends on the driver in use * Most drivers return integers: <samp>1</samp> if * <kbd>true</kbd> or <samp>0</samp> if * <kbd>false</kbd>. * Some return strings: <samp>TRUE</samp> if * <kbd>true</kbd> or <samp>FALSE</samp> if * <kbd>false</kbd>. * Finally one returns strings: <samp>T</samp> if * <kbd>true</kbd> or <samp>F</samp> if * <kbd>false</kbd>. Here is a list of each DBMS, * the values returned and the suggested column type: * <ul> * <li> * <kbd>dbase</kbd> -> <samp>T/F</samp> * (<kbd>Logical</kbd>) * </li> * <li> * <kbd>fbase</kbd> -> <samp>TRUE/FALSE</samp> * (<kbd>BOOLEAN</kbd>) * </li> * <li> * <kbd>ibase</kbd> -> <samp>1/0</samp> * (<kbd>SMALLINT</kbd>) [1] * </li> * <li> * <kbd>ifx</kbd> -> <samp>1/0</samp> * (<kbd>SMALLINT</kbd>) [1] * </li> * <li> * <kbd>msql</kbd> -> <samp>1/0</samp> * (<kbd>INTEGER</kbd>) * </li> * <li> * <kbd>mssql</kbd> -> <samp>1/0</samp> * (<kbd>BIT</kbd>) * </li> * <li> * <kbd>mysql</kbd> -> <samp>1/0</samp> * (<kbd>TINYINT(1)</kbd>) * </li> * <li> * <kbd>mysqli</kbd> -> <samp>1/0</samp> * (<kbd>TINYINT(1)</kbd>) * </li> * <li> * <kbd>oci8</kbd> -> <samp>1/0</samp> * (<kbd>NUMBER(1)</kbd>) * </li> * <li> * <kbd>odbc</kbd> -> <samp>1/0</samp> * (<kbd>SMALLINT</kbd>) [1] * </li> * <li> * <kbd>pgsql</kbd> -> <samp>TRUE/FALSE</samp> * (<kbd>BOOLEAN</kbd>) * </li> * <li> * <kbd>sqlite</kbd> -> <samp>1/0</samp> * (<kbd>INTEGER</kbd>)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?