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

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

?? peardb.php

?? PhpWiki是sourceforge的一個開源項目
?? PHP
?? 第 1 頁 / 共 4 頁
字號:
        return $data;    }    /**     * Create a new revision of a page.     */    function set_versiondata($pagename, $version, $data) {        $dbh = &$this->_dbh;        $version_tbl = $this->_table_names['version_tbl'];                $minor_edit = (int) !empty($data['is_minor_edit']);        unset($data['is_minor_edit']);                $mtime = (int)$data['mtime'];        unset($data['mtime']);        assert(!empty($mtime));        @$content = (string) $data['%content'];        unset($data['%content']);        unset($data['%pagedata']);                $this->lock();        $id = $this->_get_pageid($pagename, true);        // FIXME: optimize: mysql can do this with one REPLACE INTO (I think).        $dbh->query(sprintf("DELETE FROM $version_tbl"                            . " WHERE id=%d AND version=%d",                            $id, $version));        /* mysql optimized version.         $dbh->query(sprintf("INSERT INTO $version_tbl"                            . " (id,version,mtime,minor_edit,content,versiondata)"                            . " VALUES(%d,%d,%d,%d,'%s','%s')",                            $id, $version, $mtime, $minor_edit,                            $dbh->quoteSmart($content),                            $dbh->quoteSmart($this->_serialize($data))));        */        // generic slow PearDB bind eh quoting.        $dbh->query("INSERT INTO $version_tbl"                    . " (id,version,mtime,minor_edit,content,versiondata)"                    . " VALUES(?, ?, ?, ?, ?, ?)",                    array($id, $version, $mtime, $minor_edit, $content,                    $this->_serialize($data)));        $this->_update_recent_table($id);        $this->_update_nonempty_table($id);                $this->unlock();    }        /**     * Delete an old revision of a page.     */    function delete_versiondata($pagename, $version) {        $dbh = &$this->_dbh;        extract($this->_table_names);        $this->lock();        if ( ($id = $this->_get_pageid($pagename)) ) {            $dbh->query("DELETE FROM $version_tbl"                        . " WHERE id=$id AND version=$version");            $this->_update_recent_table($id);            // This shouldn't be needed (as long as the latestversion            // never gets deleted.)  But, let's be safe.            $this->_update_nonempty_table($id);        }        $this->unlock();    }    /**     * Delete page from the database with backup possibility.     * i.e save_page('') and DELETE nonempty id     * Can be undone and is seen in RecentChanges.     */    /* // see parent backend.php    function delete_page($pagename) {        $mtime = time();        $user =& $GLOBALS['request']->_user;        $vdata = array('author' => $user->getId(),                       'author_id' => $user->getAuthenticatedId(),                       'mtime' => $mtime);        $this->lock();        $version = $this->get_latest_version($pagename);        $this->set_versiondata($pagename, $version+1, $vdata);        $this->set_links($pagename, false);        $pagedata = get_pagedata($pagename);        $this->update_pagedata($pagename, array('hits' => $pagedata['hits']));        $this->unlock();    }    */    /**     * Delete page completely from the database.     * I'm not sure if this is what we want. Maybe just delete the revisions     */    function purge_page($pagename) {        $dbh = &$this->_dbh;        extract($this->_table_names);                $this->lock();        if ( ($id = $this->_get_pageid($pagename, false)) ) {            $dbh->query("DELETE FROM $version_tbl  WHERE id=$id");            $dbh->query("DELETE FROM $recent_tbl   WHERE id=$id");            $dbh->query("DELETE FROM $nonempty_tbl WHERE id=$id");            $dbh->query("DELETE FROM $link_tbl     WHERE linkfrom=$id");            $nlinks = $dbh->getOne("SELECT COUNT(*) FROM $link_tbl WHERE linkto=$id");            if ($nlinks) {                // We're still in the link table (dangling link) so we can't delete this                // altogether.                $dbh->query("UPDATE $page_tbl SET hits=0, pagedata='' WHERE id=$id");                $result = 0;            }            else {                $dbh->query("DELETE FROM $page_tbl WHERE id=$id");                $result = 1;            }            $this->_update_recent_table();            $this->_update_nonempty_table();        } else {            $result = -1; // already purged or not existing        }        $this->unlock();        return $result;    }    // The only thing we might be interested in updating which we can    // do fast in the flags (minor_edit).   I think the default    // update_versiondata will work fine...    //function update_versiondata($pagename, $version, $data) {    //}    function set_links($pagename, $links) {        // Update link table.        // FIXME: optimize: mysql can do this all in one big INSERT.        $dbh = &$this->_dbh;        extract($this->_table_names);        $this->lock();        $pageid = $this->_get_pageid($pagename, true);        $dbh->query("DELETE FROM $link_tbl WHERE linkfrom=$pageid");	if ($links) {            foreach($links as $link) {                if (isset($linkseen[$link]))                    continue;                $linkseen[$link] = true;                $linkid = $this->_get_pageid($link, true);                $dbh->query("INSERT INTO $link_tbl (linkfrom, linkto)"                            . " VALUES ($pageid, $linkid)");            }	}        $this->unlock();    }        /**     * Find pages which link to or are linked from a page.     */    function get_links($pagename, $reversed=true, $include_empty=false,                       $sortby=false, $limit=false, $exclude='') {        $dbh = &$this->_dbh;        extract($this->_table_names);        if ($reversed)            list($have,$want) = array('linkee', 'linker');        else            list($have,$want) = array('linker', 'linkee');        $orderby = $this->sortby($sortby, 'db', array('pagename'));        if ($orderby) $orderby = ' ORDER BY $want.' . $orderby;        if ($exclude) // array of pagenames            $exclude = " AND $want.pagename NOT IN ".$this->_sql_set($exclude);        else             $exclude='';        $qpagename = $dbh->escapeSimple($pagename);        $sql = "SELECT $want.id as id, $want.pagename as pagename, $want.hits as hits"            // Looks like 'AS' in column alias is a MySQL thing, Oracle does not like it            // and the PostgresSQL manual does not have it either            // Since it is optional in mySQL, just remove it...            . " FROM $link_tbl, $page_tbl linker, $page_tbl linkee"            . (!$include_empty ? ", $nonempty_tbl" : '')            . " WHERE linkfrom=linker.id AND linkto=linkee.id"            . "  AND $have.pagename='$qpagename'"            . (!$include_empty ? " AND $nonempty_tbl.id=$want.id" : "")            //. " GROUP BY $want.id"            . $exclude            . $orderby;        if ($limit) {            // extract from,count from limit            list($from,$count) = $this->limit($limit);            $result = $dbh->limitQuery($sql, $from, $count);        } else {            $result = $dbh->query($sql);        }                return new WikiDB_backend_PearDB_iter($this, $result);    }    /**     * Find if a page links to another page     */    function exists_link($pagename, $link, $reversed=false) {        $dbh = &$this->_dbh;        extract($this->_table_names);        if ($reversed)            list($have, $want) = array('linkee', 'linker');        else            list($have, $want) = array('linker', 'linkee');        $qpagename = $dbh->escapeSimple($pagename);        $qlink = $dbh->escapeSimple($link);        $row = $dbh->GetRow("SELECT IF($want.pagename,1,0) as result"                                . " FROM $link_tbl, $page_tbl linker, $page_tbl linkee, $nonempty_tbl"                                . " WHERE linkfrom=linker.id AND linkto=linkee.id"                                . " AND $have.pagename='$qpagename'"                                . " AND $want.pagename='$qlink'"                                . " LIMIT 1");        return $row['result'];    }    function get_all_pages($include_empty=false, $sortby=false, $limit=false, $exclude='') {        $dbh = &$this->_dbh;        extract($this->_table_names);        $orderby = $this->sortby($sortby, 'db');        if ($orderby) $orderby = ' ORDER BY ' . $orderby;        if ($exclude) // array of pagenames            $exclude = " AND $page_tbl.pagename NOT IN ".$this->_sql_set($exclude);        else             $exclude='';        if (strstr($orderby, 'mtime ')) { // multiple columns possible            if ($include_empty) {                $sql = "SELECT "                    . $this->page_tbl_fields                    . " FROM $page_tbl, $recent_tbl, $version_tbl"                    . " WHERE $page_tbl.id=$recent_tbl.id"                    . " AND $page_tbl.id=$version_tbl.id AND latestversion=version"                    . $exclude                    . $orderby;            }            else {                $sql = "SELECT "                    . $this->page_tbl_fields                    . " FROM $nonempty_tbl, $page_tbl, $recent_tbl, $version_tbl"                    . " WHERE $nonempty_tbl.id=$page_tbl.id"                    . " AND $page_tbl.id=$recent_tbl.id"                    . " AND $page_tbl.id=$version_tbl.id AND latestversion=version"                    . $exclude                    . $orderby;            }        } else {            if ($include_empty) {                $sql = "SELECT "                    . $this->page_tbl_fields                     ." FROM $page_tbl"                    . ($exclude ? " WHERE $exclude" : '')                    . $orderby;            }            else {                $sql = "SELECT "                    . $this->page_tbl_fields                    . " FROM $nonempty_tbl, $page_tbl"                    . " WHERE $nonempty_tbl.id=$page_tbl.id"                    . $exclude                    . $orderby;            }        }        if ($limit) {            // extract from,count from limit            list($from,$count) = $this->limit($limit);            $result = $dbh->limitQuery($sql, $from, $count);        } else {            $result = $dbh->query($sql);        }        return new WikiDB_backend_PearDB_iter($this, $result);    }            /**     * Title search.     */    function text_search($search, $fulltext=false) {        $dbh = &$this->_dbh;        extract($this->_table_names);        $searchclass = get_class($this)."_search";        // no need to define it everywhere and then fallback. memory!        if (!class_exists($searchclass))            $searchclass = "WikiDB_backend_PearDB_search";        $searchobj = new $searchclass($search, $dbh);                $table = "$nonempty_tbl, $page_tbl";        $join_clause = "$nonempty_tbl.id=$page_tbl.id";        $fields = $this->page_tbl_fields;        if ($fulltext) {            $table .= ", $recent_tbl";            $join_clause .= " AND $page_tbl.id=$recent_tbl.id";            $table .= ", $version_tbl";            $join_clause .= " AND $page_tbl.id=$version_tbl.id AND latestversion=version";            $fields .= ", $page_tbl.pagedata as pagedata, " . $this->version_tbl_fields;            $callback = new WikiMethodCb($searchobj, "_fulltext_match_clause");        } else {            $callback = new WikiMethodCb($searchobj, "_pagename_match_clause");        }        $search_clause = $search->makeSqlClauseObj($callback);                $result = $dbh->query("SELECT $fields FROM $table"                              . " WHERE $join_clause"                              . "  AND ($search_clause)"                              . " ORDER BY pagename");                return new WikiDB_backend_PearDB_iter($this, $result);    }    //Todo: check if the better Mysql MATCH operator is supported,    // (ranked search) and also google like expressions.    function _sql_match_clause($word) {        $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);        $word = $this->_dbh->escapeSimple($word);        //$page_tbl = $this->_table_names['page_tbl'];        //Note: Mysql 4.1.0 has a bug which fails with binary fields.        //      e.g. if word is lowercased.        // http://bugs.mysql.com/bug.php?id=1491        return "LOWER(pagename) LIKE '%$word%'";    }    function _sql_casematch_clause($word) {        $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);        $word = $this->_dbh->escapeSimple($word);        return "pagename LIKE '%$word%'";    }    function _fullsearch_sql_match_clause($word) {        $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);        $word = $this->_dbh->escapeSimple($word);        //$page_tbl = $this->_table_names['page_tbl'];        //Mysql 4.1.1 has a bug which fails here if word is lowercased.        return "LOWER(pagename) LIKE '%$word%' OR content LIKE '%$word%'";    }    function _fullsearch_sql_casematch_clause($word) {        $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);        $word = $this->_dbh->escapeSimple($word);        return "pagename LIKE '%$word%' OR content LIKE '%$word%'";    }    /**     * Find highest or lowest hit counts.     */    function most_popular($limit=0, $sortby='-hits') {        $dbh = &$this->_dbh;        extract($this->_table_names);        if ($limit < 0){             $order = "hits ASC";            $limit = -$limit;            $where = "";         } else {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美猛男男办公室激情| 99久久精品免费看国产| 婷婷成人激情在线网| 亚洲精品久久久蜜桃| 亚洲精品免费电影| 亚洲综合成人网| 亚洲成av人片在线观看无码| 亚洲美女在线一区| 亚洲综合网站在线观看| 亚洲一区二区在线免费看| 亚洲一区二区欧美激情| 亚洲va中文字幕| 久久精品99国产精品日本| 美女国产一区二区三区| 国产制服丝袜一区| av电影一区二区| 欧美亚洲愉拍一区二区| 欧美日韩视频在线观看一区二区三区 | 亚洲一区电影777| 亚洲va国产va欧美va观看| 男女男精品视频网| 夫妻av一区二区| www.亚洲色图| 欧美日韩国产影片| 国产欧美日韩三级| 亚洲乱码国产乱码精品精的特点 | 日韩视频在线永久播放| 久久人人爽爽爽人久久久| 国产精品欧美一级免费| 午夜视黄欧洲亚洲| 国产乱码一区二区三区| 色婷婷综合五月| 欧美一三区三区四区免费在线看| 精品电影一区二区三区| 亚洲青青青在线视频| 久久精品理论片| 成人高清免费观看| 91精品国产综合久久精品| 国产人成亚洲第一网站在线播放| 亚洲成人在线观看视频| 国产精品小仙女| 欧美网站大全在线观看| 国产欧美日产一区| 视频精品一区二区| 91蜜桃婷婷狠狠久久综合9色| 777久久久精品| 中文字幕一区二区三区不卡在线| 免费人成精品欧美精品| 色综合久久综合网97色综合| 久久综合狠狠综合久久综合88| 亚洲色图欧洲色图婷婷| 国产一区二区在线视频| 欧美日本视频在线| 亚洲日本在线视频观看| 福利电影一区二区三区| 精品国产成人系列| 五月婷婷激情综合网| 色综合久久88色综合天天免费| 久久综合999| 另类小说视频一区二区| 欧美日韩成人综合| 亚洲精选一二三| 99久久精品国产导航| 日本一区二区成人| 国产91在线观看| 国产肉丝袜一区二区| 国产一区二区在线影院| 欧美xxxxxxxxx| 美女国产一区二区三区| 日韩色在线观看| 日本女优在线视频一区二区| 欧美视频一区二区在线观看| 亚洲激情男女视频| 色婷婷激情久久| 亚洲视频一区二区在线观看| hitomi一区二区三区精品| 国产精品久久久久9999吃药| 成人av第一页| 亚洲免费资源在线播放| 99久久精品国产导航| 1000精品久久久久久久久| 99久久综合99久久综合网站| 国产精品乱人伦| 91视频国产观看| 亚洲午夜国产一区99re久久| 欧美日韩一级二级| 伦理电影国产精品| 久久久久久久久免费| 成人免费高清视频在线观看| 国产精品乱码妇女bbbb| 色综合一区二区| 日韩成人午夜精品| 精品国产网站在线观看| 国产高清无密码一区二区三区| 国产精品网站在线| 色88888久久久久久影院按摩| 午夜电影一区二区三区| 欧美r级电影在线观看| 成人爱爱电影网址| 亚洲国产精品久久久久秋霞影院 | 91精品国产一区二区人妖| 久久99深爱久久99精品| 亚洲欧洲日韩综合一区二区| 在线日韩国产精品| 久久99热这里只有精品| 亚洲欧美国产毛片在线| 日韩精品在线网站| 成人精品视频.| 五月婷婷久久丁香| 国产精品乱子久久久久| 欧美一级精品在线| 91丨porny丨在线| 轻轻草成人在线| 国产精品福利av| 4438成人网| 成人av集中营| 久久丁香综合五月国产三级网站| 亚洲色图视频网| 久久色在线视频| 欧美日韩大陆在线| 91免费国产在线| 国产在线精品视频| 天天色天天操综合| 最新热久久免费视频| 26uuu亚洲| 日韩欧美一区中文| 在线看日韩精品电影| 岛国精品在线播放| 国产在线乱码一区二区三区| 亚洲国产精品久久久久婷婷884 | 亚洲无线码一区二区三区| 欧美国产丝袜视频| 日韩精品一区二区三区在线观看 | 日韩电影在线观看网站| 又紧又大又爽精品一区二区| 久久这里只有精品首页| 日韩精品自拍偷拍| 在线成人小视频| 欧美少妇性性性| 欧美综合欧美视频| 在线日韩av片| 91久久精品国产91性色tv| 91在线丨porny丨国产| 丁香婷婷综合色啪| 国产福利不卡视频| 国产一区999| 国产成人一区二区精品非洲| 麻豆国产精品一区二区三区 | 亚洲一区二区影院| 亚洲三级在线免费观看| 国产精品视频在线看| 中文字幕精品在线不卡| 国产精品三级电影| 国产精品短视频| 1000精品久久久久久久久| 亚洲少妇30p| 亚洲国产sm捆绑调教视频 | 日韩精品一区二区三区中文精品| 欧美精品一卡两卡| 日韩情涩欧美日韩视频| 2021中文字幕一区亚洲| 国产日产欧产精品推荐色 | 色婷婷av一区二区三区大白胸| 99久久er热在这里只有精品15| 99视频热这里只有精品免费| 97精品久久久久中文字幕| 91美女蜜桃在线| 欧美精品99久久久**| 欧美大片一区二区三区| 日本一区二区三区四区| 亚洲精品免费视频| 日本91福利区| 国产精品18久久久久久久网站| www.欧美.com| 欧美日韩一区二区三区在线看| 日韩欧美一级二级三级久久久| 国产日韩欧美在线一区| 亚洲一区二区三区中文字幕在线| 日本美女视频一区二区| 成人午夜激情影院| 欧美专区日韩专区| 久久蜜桃一区二区| 亚洲在线免费播放| 国产精品99久久久| 欧美日韩中文国产| 国产精品视频观看| 日韩综合小视频| 成人av片在线观看| 日韩视频免费观看高清完整版在线观看 | 欧美日韩激情在线| 精品国产a毛片| 亚洲成av人在线观看| 国产成人免费视频网站高清观看视频 | 91网站在线观看视频| 91精品视频网| 亚洲丝袜自拍清纯另类| 久久国产欧美日韩精品| 欧美影院一区二区| 欧美经典三级视频一区二区三区| 三级亚洲高清视频|