亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ibase.php

?? PhpWiki是sourceforge的一個開源項目
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?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: Sterling Hughes <sterling@php.net>                           |// | Maintainer: Daniel Convissor <danielc@php.net>                       |// +----------------------------------------------------------------------+//// $Id: ibase.php,v 1.3 2004/06/21 08:39:38 rurban Exp $// Bugs://  - If dbsyntax is not firebird, the limitQuery may failrequire_once 'DB/common.php';/** * Database independent query interface definition for PHP's Interbase * extension. * * @package  DB * @version  $Id: ibase.php,v 1.3 2004/06/21 08:39:38 rurban Exp $ * @category Database * @author   Sterling Hughes <sterling@php.net> */class DB_ibase extends DB_common{    // {{{ properties    var $connection;    var $phptype, $dbsyntax;    var $autocommit = 1;    var $manip_query = array();    // }}}    // {{{ constructor    function DB_ibase()    {        $this->DB_common();        $this->phptype = 'ibase';        $this->dbsyntax = 'ibase';        $this->features = array(            'prepare' => true,            'pconnect' => true,            'transactions' => true,            'limit' => false        );        // just a few of the tons of Interbase error codes listed in the        // Language Reference section of the Interbase manual        $this->errorcode_map = array(            -104 => DB_ERROR_SYNTAX,            -150 => DB_ERROR_ACCESS_VIOLATION,            -151 => DB_ERROR_ACCESS_VIOLATION,            -155 => DB_ERROR_NOSUCHTABLE,            88   => DB_ERROR_NOSUCHTABLE,            -157 => DB_ERROR_NOSUCHFIELD,            -158 => DB_ERROR_VALUE_COUNT_ON_ROW,            -170 => DB_ERROR_MISMATCH,            -171 => DB_ERROR_MISMATCH,            -172 => DB_ERROR_INVALID,            -204 => DB_ERROR_INVALID,            -205 => DB_ERROR_NOSUCHFIELD,            -206 => DB_ERROR_NOSUCHFIELD,            -208 => DB_ERROR_INVALID,            -219 => DB_ERROR_NOSUCHTABLE,            -297 => DB_ERROR_CONSTRAINT,            -530 => DB_ERROR_CONSTRAINT,            -607 => DB_ERROR_NOSUCHTABLE,            -803 => DB_ERROR_CONSTRAINT,            -551 => DB_ERROR_ACCESS_VIOLATION,            -552 => DB_ERROR_ACCESS_VIOLATION,            -922 => DB_ERROR_NOSUCHDB,            -923 => DB_ERROR_CONNECT_FAILED,            -924 => DB_ERROR_CONNECT_FAILED        );    }    // }}}    // {{{ connect()    function connect($dsninfo, $persistent = false)    {        if (!DB::assertExtension('interbase')) {            return $this->raiseError(DB_ERROR_EXTENSION_NOT_FOUND);        }        $this->dsn = $dsninfo;        $dbhost = $dsninfo['hostspec'] ?                  ($dsninfo['hostspec'] . ':' . $dsninfo['database']) :                  $dsninfo['database'];        $connect_function = $persistent ? 'ibase_pconnect' : 'ibase_connect';        $params = array();        $params[] = $dbhost;        $params[] = $dsninfo['username'] ? $dsninfo['username'] : null;        $params[] = $dsninfo['password'] ? $dsninfo['password'] : null;        $params[] = isset($dsninfo['charset']) ? $dsninfo['charset'] : null;        $params[] = isset($dsninfo['buffers']) ? $dsninfo['buffers'] : null;        $params[] = isset($dsninfo['dialect']) ? $dsninfo['dialect'] : null;        $params[] = isset($dsninfo['role'])    ? $dsninfo['role'] : null;        $conn = @call_user_func_array($connect_function, $params);        if (!$conn) {            return $this->ibaseRaiseError(DB_ERROR_CONNECT_FAILED);        }        $this->connection = $conn;        if ($this->dsn['dbsyntax'] == 'firebird') {            $this->features['limit'] = 'alter';        }        return DB_OK;    }    // }}}    // {{{ disconnect()    function disconnect()    {        $ret = @ibase_close($this->connection);        $this->connection = null;        return $ret;    }    // }}}    // {{{ simpleQuery()    function simpleQuery($query)    {        $ismanip = DB::isManip($query);        $this->last_query = $query;        $query = $this->modifyQuery($query);        $result = @ibase_query($this->connection, $query);        if (!$result) {            return $this->ibaseRaiseError();        }        if ($this->autocommit && $ismanip) {            @ibase_commit($this->connection);        }        // Determine which queries that should return data, and which        // should return an error code only.        return $ismanip ? DB_OK : $result;    }    // }}}    // {{{ modifyLimitQuery()    /**     * This method is used by backends to alter limited queries     * Uses the new FIRST n SKIP n Firebird 1.0 syntax, so it is     * only compatible with Firebird 1.x     *     * @param string  $query query to modify     * @param integer $from  the row to start to fetching     * @param integer $count the numbers of rows to fetch     *     * @return the new (modified) query     * @author Ludovico Magnocavallo <ludo@sumatrasolutions.com>     * @access private     */    function modifyLimitQuery($query, $from, $count)    {        if ($this->dsn['dbsyntax'] == 'firebird') {            //$from++; // SKIP starts from 1, ie SKIP 1 starts from the first record                           // (cox) Seems that SKIP starts in 0            $query = preg_replace('/^\s*select\s(.*)$/is',                                  "SELECT FIRST $count SKIP $from $1", $query);        }        return $query;    }    // }}}    // {{{ nextResult()    /**     * Move the internal ibase result pointer to the next available result     *     * @param a valid fbsql result resource     *     * @access public     *     * @return true if a result is available otherwise return false     */    function nextResult($result)    {        return false;    }    // }}}    // {{{ fetchInto()    /**     * Fetch a row and insert the data into an existing array.     *     * Formating of the array and the data therein are configurable.     * See DB_result::fetchInto() for more information.     *     * @param resource $result    query result identifier     * @param array    $arr       (reference) array where data from the row     *                            should be placed     * @param int      $fetchmode how the resulting array should be indexed     * @param int      $rownum    the row number to fetch     *     * @return mixed DB_OK on success, null when end of result set is     *               reached or on failure     *     * @see DB_result::fetchInto()     * @access private     */    function fetchInto($result, &$arr, $fetchmode, $rownum=null)    {        if ($rownum !== null) {            return $this->ibaseRaiseError(DB_ERROR_NOT_CAPABLE);        }        if ($fetchmode & DB_FETCHMODE_ASSOC) {            if (function_exists('ibase_fetch_assoc')) {                $arr = @ibase_fetch_assoc($result);            } else {                $arr = get_object_vars(ibase_fetch_object($result));            }            if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE && $arr) {                $arr = array_change_key_case($arr, CASE_LOWER);            }        } else {            $arr = @ibase_fetch_row($result);        }        if (!$arr) {            if ($errmsg = @ibase_errmsg()) {                return $this->ibaseRaiseError(null, $errmsg);            } else {                return null;            }        }        if ($this->options['portability'] & DB_PORTABILITY_RTRIM) {            $this->_rtrimArrayValues($arr);        }        if ($this->options['portability'] & DB_PORTABILITY_NULL_TO_EMPTY) {            $this->_convertNullArrayValuesToEmpty($arr);        }        return DB_OK;    }    // }}}    // {{{ freeResult()    function freeResult($result)    {        return @ibase_free_result($result);    }    // }}}    // {{{ freeQuery()    function freeQuery($query)    {        @ibase_free_query($query);        return true;    }    // }}}    // {{{ numCols()    function numCols($result)    {        $cols = @ibase_num_fields($result);        if (!$cols) {            return $this->ibaseRaiseError();        }        return $cols;    }    // }}}    // {{{ prepare()    /**     * Prepares a query for multiple execution with execute().     *     * prepare() requires a generic query as string like <code>     *    INSERT INTO numbers VALUES (?, ?, ?)     * </code>.  The <kbd>?</kbd> characters are placeholders.     *     * Three types of placeholders can be used:     *   + <kbd>?</kbd>  a quoted scalar value, i.e. strings, integers     *   + <kbd>!</kbd>  value is inserted 'as is'     *   + <kbd>&</kbd>  requires a file name.  The file's contents get     *                     inserted into the query (i.e. saving binary     *                     data in a db)     *     * Use backslashes to escape placeholder characters if you don't want     * them to be interpreted as placeholders.  Example: <code>     *    "UPDATE foo SET col=? WHERE col='over \& under'"     * </code>     *     * @param string $query query to be prepared     * @return mixed DB statement resource on success. DB_Error on failure.     */    function prepare($query)    {        $tokens   = preg_split('/((?<!\\\)[&?!])/', $query, -1,                               PREG_SPLIT_DELIM_CAPTURE);        $token    = 0;        $types    = array();        $newquery = '';        foreach ($tokens as $key => $val) {            switch ($val) {                case '?':                    $types[$token++] = DB_PARAM_SCALAR;                    break;                case '&':                    $types[$token++] = DB_PARAM_OPAQUE;                    break;                case '!':                    $types[$token++] = DB_PARAM_MISC;                    break;                default:                    $tokens[$key] = preg_replace('/\\\([&?!])/', "\\1", $val);                    $newquery .= $tokens[$key] . '?';            }        }        $newquery = substr($newquery, 0, -1);        $this->last_query = $query;        $newquery = $this->modifyQuery($newquery);        $stmt = @ibase_prepare($this->connection, $newquery);        $this->prepare_types[(int)$stmt] = $types;        $this->manip_query[(int)$stmt]   = DB::isManip($query);        return $stmt;    }    // }}}    // {{{ execute()    /**     * Executes a DB statement prepared with prepare().     *     * @param resource  $stmt  a DB statement resource returned from prepare()     * @param mixed  $data  array, string or numeric data to be used in     *                      execution of the statement.  Quantity of items     *                      passed must match quantity of placeholders in     *                      query:  meaning 1 for non-array items or the     *                      quantity of elements in the array.     * @return object  a new DB_Result or a DB_Error when fail     * @see DB_ibase::prepare()     * @access public     */    function &execute($stmt, $data = array())    {        if (!is_array($data)) {            $data = array($data);        }        $types =& $this->prepare_types[$stmt];        if (count($types) != count($data)) {            $tmp =& $this->raiseError(DB_ERROR_MISMATCH);            return $tmp;        }        $i = 0;        foreach ($data as $key => $value) {            if ($types[$i] == DB_PARAM_MISC) {                /*                 * ibase doesn't seem to have the ability to pass a                 * parameter along unchanged, so strip off quotes from start                 * and end, plus turn two single quotes to one single quote,                 * in order to avoid the quotes getting escaped by                 * ibase and ending up in the database.                 */                $data[$key] = preg_replace("/^'(.*)'$/", "\\1", $data[$key]);                $data[$key] = str_replace("''", "'", $data[$key]);            } elseif ($types[$i] == DB_PARAM_OPAQUE) {                $fp = @fopen($data[$key], 'rb');                if (!$fp) {                    $tmp =& $this->raiseError(DB_ERROR_ACCESS_VIOLATION);                    return $tmp;                }                $data[$key] = fread($fp, filesize($data[$key]));                fclose($fp);            }            $i++;        }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
三级在线观看一区二区| 日韩一区二区视频在线观看| 日本一区二区三区国色天香 | 亚洲成人在线免费| 一本一道久久a久久精品| 亚洲欧美激情小说另类| 91麻豆福利精品推荐| 一区二区高清在线| 欧美精品自拍偷拍| 日韩电影在线免费看| 日韩免费视频一区二区| 激情偷乱视频一区二区三区| 久久精品欧美日韩精品| 国产不卡在线一区| 日本不卡1234视频| 精品国产91亚洲一区二区三区婷婷| 精品一区二区在线免费观看| 国产三级久久久| 91在线视频网址| 丝袜国产日韩另类美女| 亚洲精品一线二线三线无人区| 国产精品白丝jk白祙喷水网站| 国产精品色噜噜| 欧美在线三级电影| 秋霞午夜鲁丝一区二区老狼| 国产欧美中文在线| 色94色欧美sute亚洲线路一久 | 亚洲日本在线a| 在线影视一区二区三区| 青青草国产成人99久久| 久久久91精品国产一区二区精品| 99精品视频在线观看| 午夜国产精品一区| 国产亚洲欧洲一区高清在线观看| 91网站黄www| 免费观看91视频大全| 国产精品国产三级国产| 欧美精品九九99久久| 大尺度一区二区| 午夜精品久久久久影视| 国产精品私人自拍| 91精品国产综合久久精品性色| 成人午夜在线免费| 天堂成人免费av电影一区| 欧美国产日本韩| 欧美日韩国产美女| 国产**成人网毛片九色| 日韩国产成人精品| 日韩伦理免费电影| 精品久久久影院| 欧洲精品视频在线观看| 国产成人免费视频网站| 婷婷中文字幕综合| 中文字幕一区二区三区四区不卡| 欧美成人女星排行榜| 欧美午夜影院一区| 成人v精品蜜桃久久一区| 久久国产三级精品| 91九色02白丝porn| 国产成人在线视频网址| 免费黄网站欧美| 亚洲成av人片在www色猫咪| 国产精品久久久久久久久免费丝袜 | 欧美日韩一级大片网址| 丁香婷婷综合激情五月色| 免费亚洲电影在线| 亚洲成人免费在线| 亚洲美女偷拍久久| 国产精品三级视频| 国产网红主播福利一区二区| 日韩三级在线观看| 欧美精品99久久久**| 91国偷自产一区二区三区观看 | 欧美三级韩国三级日本三斤| av在线这里只有精品| 国产精品综合一区二区| 精品一区二区三区在线观看| 天天色天天爱天天射综合| 亚洲激情欧美激情| 最新中文字幕一区二区三区 | 欧美日韩日日摸| 国产欧美日韩三级| 久久久影视传媒| 久久久久国产精品免费免费搜索| 精品国产1区2区3区| 精品日韩成人av| 日韩一级黄色大片| 欧美成人三级在线| 久久久亚洲精品石原莉奈| 欧美一二三区在线观看| 日韩欧美在线观看一区二区三区| 91精品国产综合久久精品app| 欧美乱妇15p| 欧美一区二区成人| wwww国产精品欧美| 欧美高清在线精品一区| 国产精品国产自产拍高清av | 欧美日韩午夜影院| 欧美一级二级在线观看| 精品国免费一区二区三区| 久久精品亚洲乱码伦伦中文| 亚洲国产精品国自产拍av| 17c精品麻豆一区二区免费| 亚洲激情欧美激情| 青青国产91久久久久久| 狠狠久久亚洲欧美| 成人app在线| 欧美系列亚洲系列| 精品日韩一区二区三区| 中文字幕一区视频| 亚洲国产成人tv| 蜜桃一区二区三区四区| 国产一区二区免费看| 91浏览器在线视频| 欧美一区二区三区视频在线| 久久嫩草精品久久久久| 亚洲视频 欧洲视频| 日韩综合小视频| 国产成a人亚洲精| 欧美亚洲国产一区在线观看网站| 91精品国产综合久久香蕉的特点| 久久久精品免费免费| 一区二区三区四区不卡视频| 男女性色大片免费观看一区二区| 国产成人av电影在线播放| 在线观看www91| 久久日韩粉嫩一区二区三区| 一区二区三区在线观看欧美| 国产综合成人久久大片91| 色94色欧美sute亚洲线路一久| 日韩欧美国产综合在线一区二区三区| 国产欧美va欧美不卡在线| 亚洲成av人片在线观看无码| 国产不卡在线视频| 91精品婷婷国产综合久久| 国产精品青草久久| 美腿丝袜亚洲综合| 日本黄色一区二区| 国产日韩影视精品| 秋霞国产午夜精品免费视频| 91麻豆蜜桃一区二区三区| 久久久久久久免费视频了| 亚洲电影视频在线| www.性欧美| 久久欧美一区二区| 日韩电影在线观看网站| 91麻豆成人久久精品二区三区| 久久久亚洲精品石原莉奈| 日韩精品91亚洲二区在线观看| 不卡免费追剧大全电视剧网站| 日韩亚洲欧美综合| 午夜一区二区三区视频| 97se亚洲国产综合自在线| 国产亚洲欧洲997久久综合| 蜜桃久久久久久| 欧美日韩精品欧美日韩精品一综合 | 国产毛片精品视频| 在线观看91av| 亚洲国产美国国产综合一区二区| 成人av午夜电影| 国产视频不卡一区| 国产在线播放一区三区四| 91精品国产乱| 日韩不卡手机在线v区| 欧美久久免费观看| 亚洲码国产岛国毛片在线| 99久久伊人精品| 亚洲国产成人自拍| 国产99久久久国产精品免费看 | 在线观看国产日韩| 亚洲三级久久久| 99久久婷婷国产精品综合| 国产精品无人区| 成人午夜短视频| 18欧美乱大交hd1984| av不卡免费电影| 亚洲欧美日韩一区二区三区在线观看| 成人sese在线| 一区二区国产盗摄色噜噜| 欧美性做爰猛烈叫床潮| 亚洲一区二区在线观看视频 | av毛片久久久久**hd| 国产精品护士白丝一区av| 99国产精品久久久久久久久久久| 国产精品美女久久久久久2018| 成人精品gif动图一区| 中文字幕一区日韩精品欧美| 91麻豆成人久久精品二区三区| 亚洲精品高清视频在线观看| 欧美亚洲国产一区二区三区 | 亚洲综合小说图片| 欧美日韩亚洲综合在线| 日韩精品高清不卡| 久久综合久色欧美综合狠狠| 国产精华液一区二区三区| 国产精品色噜噜| 欧洲精品一区二区| 久久精品国产免费| 中文字幕不卡一区| 一本高清dvd不卡在线观看 |