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 + -
显示快捷键?