⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.php

📁 太烦了
💻 PHP
📖 第 1 页 / 共 5 页
字号:
<?php/* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */// +----------------------------------------------------------------------+// | PHP Version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2004 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 2.02 of the PHP license,      |// | that is bundled with this package in the file LICENSE, and is        |// | available at through the world-wide-web at                           |// | http://www.php.net/license/2_02.txt.                                 |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Author: Stig Bakken <ssb@php.net>                                    |// |         Tomas V.V.Cox <cox@idecnet.com>                              |// | Maintainer: Daniel Convissor <danielc@php.net>                       |// +----------------------------------------------------------------------+//// $Id: common.php,v 1.2 2005/07/22 05:10:13 max Exp $require_once PEAR_DIR . 'PEAR.php';@set_time_limit(1200);/** * DB_common is a base class for DB implementations, and must be * inherited by all such * * @package  DB * @version  $Id: common.php,v 1.2 2005/07/22 05:10:13 max Exp $ * @category Database * @author   Stig Bakken <ssb@php.net> * @author   Tomas V.V.Cox <cox@idecnet.com> */class DB_common extends PEAR{    // {{{ properties    /**     * assoc of capabilities for this DB implementation     * $features['limit'] =>  'emulate' => emulate with fetch row by number     *                        'alter'   => alter the query     *                        false     => skip rows     * @var array     */    var $features = array();    /**     * assoc mapping native error codes to DB ones     * @var array     */    var $errorcode_map = array();    /**     * DB type (mysql, oci8, odbc etc.)     * @var string     */    var $phptype;    /**     * @var string     */    var $prepare_tokens;    /**     * @var string     */    var $prepare_types;    /**     * @var string     */    var $prepared_queries;    /**     * @var integer     */    var $prepare_maxstmt = 0;    /**     * @var string     */    var $last_query = '';    /**     * @var integer     */    var $fetchmode = DB_FETCHMODE_ORDERED;    /**     * @var string     */    var $fetchmode_object_class = 'stdClass';    /**     * Run-time configuration options.     *     * The 'optimize' option has been deprecated.  Use the 'portability'     * option instead.     *     * @see DB_common::setOption()     * @var array     */    var $options = array(        'persistent' => false,        'ssl' => false,        'debug' => 0,        'seqname_format' => '%s_seq',        'autofree' => false,        'portability' => DB_PORTABILITY_NONE,        'optimize' => 'performance',  // Deprecated.  Use 'portability'.    );    /**     * DB handle     * @var resource     */    var $dbh;    // }}}    // {{{ toString()    /**     * String conversation     *     * @return string     * @access private     */    function toString()    {        $info = strtolower(get_class($this));        $info .=  ': (phptype=' . $this->phptype .                  ', dbsyntax=' . $this->dbsyntax .                  ')';        if ($this->connection) {            $info .= ' [connected]';        }        return $info;    }    // }}}    // {{{ constructor    /**     * Constructor     */    function DB_common()    {        $this->PEAR('DB_Error');    }    // }}}    // {{{ quoteString()    /**     * DEPRECATED: Quotes a string so it can be safely used within string     * delimiters in a query     *     * @return string quoted string     *     * @see DB_common::quoteSmart(), DB_common::escapeSimple()     * @deprecated  Deprecated in release 1.2 or lower     * @internal     */    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 input string to quote     *     * @return string The NULL string or the string quotes     *                in magic_quote_sybase style     *     * @see DB_common::quoteSmart(), DB_common::escapeSimple()     * @deprecated  Deprecated in release 1.6.0     * @internal     */    function quote($string = null)    {        return ($string === null) ? 'NULL' : "'".str_replace("'", "''", $string)."'";    }    // }}}    // {{{ quoteIdentifier()    /**     * Quote 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     *     * InterBase doesn't seem to be able to use delimited identifiers     * via PHP 4.  They work fine under PHP 5.     *     * @param string $str  identifier name to be quoted     *     * @return string  quoted identifier string     *     * @since 1.6.0     * @access public     */    function quoteIdentifier($str)    {        return '"' . str_replace('"', '""', $str) . '"';    }    // }}}    // {{{ quoteSmart()    /**     * Format 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  data to be quoted     *     * @return mixed  the format of the results 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>     *    &type.bool; -> 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>)     *      </li>     *      <li>     *        <kbd>sybase</kbd> -> <samp>1/0</samp>     *        (<kbd>TINYINT(1)</kbd>)     *      </li>     *    </ul>     *    [1] Accommodate the lowest common denominator because not all     *    versions of have <kbd>BOOLEAN</kbd>.     *  </li>     *  <li>     *    other (including strings and numeric strings) ->     *    the data with single quotes escaped by preceeding     *    single quotes, backslashes are escaped by preceeding     *    backslashes, then the whole string is encapsulated     *    between single quotes     *  </li>     * </ul>     *     * @since 1.6.0     * @see DB_common::escapeSimple()     * @access public     */    function quoteSmart($in)    {        if (is_int($in) || is_double($in)) {            return $in;        } elseif (is_bool($in)) {            return $in ? 1 : 0;        } elseif (is_null($in)) {            return 'NULL';        } else {            return "'" . $this->escapeSimple($in) . "'";        }    }    // }}}    // {{{ escapeSimple()    /**     * Escape a string according to the current DBMS's standards     *     * In SQLite, this makes things safe for inserts/updates, but may     * cause problems when performing text comparisons against columns     * containing binary data. See the     * {@link http://php.net/sqlite_escape_string PHP manual} for more info.     *     * @param string $str  the string to be escaped     *     * @return string  the escaped string     *     * @since 1.6.0     * @see DB_common::quoteSmart()     * @access public     */    function escapeSimple($str) {        return str_replace("'", "''", $str);    }    // }}}    // {{{ provides()    /**     * Tell whether a DB implementation or its backend extension     * supports a given feature     *     * @param array $feature name of the feature (see the DB class doc)     * @return bool whether this DB implementation supports $feature     * @access public     */    function provides($feature)    {        return $this->features[$feature];    }    // }}}    // {{{ errorCode()    /**     * Map native error codes to DB's portable ones     *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -