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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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++;        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线欧美小视频| 丁香另类激情小说| 亚洲精品中文在线影院| 国产喷白浆一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| 91精品国产综合久久久久久久久久| 欧美日韩日日骚| 欧美久久免费观看| 日韩欧美亚洲另类制服综合在线 | 精品福利视频一区二区三区| 69堂成人精品免费视频| 日韩欧美一二三| 国产三级久久久| 国产精品美女一区二区三区| 亚洲欧美欧美一区二区三区| 亚洲在线视频一区| 欧美bbbbb| 国产ts人妖一区二区| 成人av免费网站| 欧美日韩在线不卡| 精品国产乱码久久| 国产精品久久久久影院色老大 | 中文字幕在线视频一区| 中文字幕一区在线观看视频| 亚洲男女一区二区三区| 水野朝阳av一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品一区二区视频| 欧美午夜精品久久久久久孕妇| 欧美精品1区2区| 亚洲国产成人自拍| 日韩高清一区在线| 成人免费观看男女羞羞视频| 欧美日韩一区二区三区不卡| 精品国产一区二区三区不卡| 亚洲精品乱码久久久久久日本蜜臀| 婷婷丁香激情综合| 成人av电影在线播放| 欧美区视频在线观看| 中文字幕欧美日本乱码一线二线| 一区二区三区欧美在线观看| 精品一区二区三区不卡| 色综合久久综合网欧美综合网 | 97久久超碰国产精品| 欧美揉bbbbb揉bbbbb| 中文字幕av一区 二区| 日韩黄色免费电影| 色妹子一区二区| 久久青草国产手机看片福利盒子 | 欧美精品丝袜久久久中文字幕| 国产偷国产偷精品高清尤物| 亚洲第一福利一区| 91视频观看视频| 日本一区二区免费在线| 久热成人在线视频| 欧美精品色一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 国产电影一区二区三区| 日韩精品在线一区二区| 日韩精品视频网站| 欧美日韩精品欧美日韩精品一综合| 国产三级精品视频| 韩国精品在线观看| 日韩精品一区二区三区老鸭窝| 亚洲国产另类av| 欧美在线影院一区二区| 综合中文字幕亚洲| jlzzjlzz亚洲日本少妇| 国产性做久久久久久| 国产乱码字幕精品高清av| 欧美不卡在线视频| 国精产品一区一区三区mba桃花| 欧美美女视频在线观看| 亚洲福利视频一区二区| 欧美日韩一区久久| 亚洲va欧美va国产va天堂影院| 欧美色手机在线观看| 亚洲成人免费影院| 日韩一区二区三免费高清| 青青草视频一区| 精品成人佐山爱一区二区| 韩国女主播成人在线观看| 久久精品亚洲精品国产欧美| 国产成人小视频| 亚洲欧洲精品一区二区三区不卡| 成人黄色av电影| 伊人夜夜躁av伊人久久| 欧美日韩第一区日日骚| 蜜乳av一区二区三区| 亚洲最大成人网4388xx| 欧美日韩国产色站一区二区三区| 亚洲成av人在线观看| 日韩欧美www| 国产a区久久久| 一卡二卡欧美日韩| 欧美一区二区三区系列电影| 国产制服丝袜一区| 日韩一区中文字幕| 欧美日韩大陆在线| 国产精品1区2区| 亚洲男人的天堂av| 日韩欧美专区在线| 99久久婷婷国产精品综合| 亚洲国产成人av网| 国产亚洲欧美色| 在线观看成人小视频| 蜜臀久久99精品久久久久宅男 | 中文字幕欧美日本乱码一线二线| 91亚洲国产成人精品一区二三 | 欧美sm美女调教| 99精品国产热久久91蜜凸| 亚洲成人av中文| 国产日韩精品一区二区三区在线| 在线一区二区视频| 国产精品一二三四| 日韩精品视频网站| 亚洲视频图片小说| 久久综合久久综合久久综合| 91在线你懂得| 国产原创一区二区| 午夜精品免费在线观看| 国产精品国产自产拍在线| 日韩欧美美女一区二区三区| 色综合久久久网| 成人深夜视频在线观看| 久久99热狠狠色一区二区| 一区二区三区四区在线播放| 国产日产欧美一区二区视频| 欧美精品丝袜中出| 在线观看免费一区| 99精品一区二区三区| 国产一区二区福利| 蜜桃精品在线观看| 日韩中文欧美在线| 亚洲动漫第一页| 亚洲另类中文字| 国产精品欧美一级免费| 久久久亚洲精品一区二区三区| 制服丝袜成人动漫| 在线成人午夜影院| 欧美综合欧美视频| 91丨九色丨黑人外教| 大陆成人av片| 成人黄色av电影| 成人综合婷婷国产精品久久免费| 极品少妇xxxx偷拍精品少妇| 日韩精品一区第一页| 日韩国产精品久久久| 亚洲综合激情另类小说区| 亚洲女厕所小便bbb| 亚洲精品日日夜夜| 一区二区在线观看免费| 亚洲综合在线视频| 一区二区三区国产精品| 伊人一区二区三区| 亚洲一二三区视频在线观看| 夜夜爽夜夜爽精品视频| 亚洲一级在线观看| 日韩精品久久久久久| 老司机精品视频导航| 韩国av一区二区三区在线观看| 韩国三级电影一区二区| 国产盗摄一区二区三区| 波多野结衣视频一区| 91国偷自产一区二区使用方法| 欧美午夜在线观看| 777久久久精品| 久久先锋影音av| 欧美国产激情一区二区三区蜜月| 国产精品久久久久毛片软件| 伊人开心综合网| 视频一区在线视频| 麻豆极品一区二区三区| 国产精品中文字幕日韩精品| 波多野结衣精品在线| 欧美中文字幕一区二区三区| 日韩视频免费观看高清在线视频| 久久久久久一级片| 一区二区在线观看视频| 免费看欧美美女黄的网站| 国产乱人伦精品一区二区在线观看 | 一区二区三区中文字幕精品精品 | 精品一区二区免费| 国产99久久久久久免费看农村| 色综合咪咪久久| 欧美电视剧在线观看完整版| 中文字幕av在线一区二区三区| 一区二区三区在线免费观看| 日本不卡一二三区黄网| www.色综合.com| 日韩一卡二卡三卡| 亚洲三级视频在线观看| 美女网站色91| 在线视频你懂得一区| 久久精品一二三| 亚洲不卡av一区二区三区| 成熟亚洲日本毛茸茸凸凹| 欧美老人xxxx18| 亚洲欧美韩国综合色| 国产做a爰片久久毛片|