ci2.x鏈接sqlsrv數(shù)據(jù)庫limit不生效的解決方法

使用2.2版本查詢sqrsrv數(shù)據(jù)庫的時候越平,發(fā)現(xiàn)limit方法根本不生效闸拿。

為此褐桌,我特別到github上下載了最新的代碼,然后做了相應的修改饼记。

修改database/drivers/sqlsrv/sqlsrv _driver.phpdatabase/drivers/mssql/mssql_driver.php文件中的limit方法,完整代碼如下:

protected function _limit($sql,$limit, $offset)
{
        // As of SQL Server 2012 (11.0.*) OFFSET is supported
        if (version_compare($this->version(), '11', '>='))
        {
            // SQL Server OFFSET-FETCH can be used only with the ORDER BY clause
            empty($this->ar_orderby) && $sql .= ' ORDER BY 1';
            return $sql.' OFFSET '.(int) $offset.' ROWS FETCH NEXT '.$limit.' ROWS ONLY';
        }
//      $limit = $this->ar_offset + $this->ar_limit;
        // An ORDER BY clause is required for ROW_NUMBER() to work
        if ($this->ar_offset && ! empty($this->ar_orderby))
        {
            $orderby = $this->_compile_order_by();
            // We have to strip the ORDER BY clause
            $sql = trim(substr($sql, 0, strrpos($sql, $orderby)));
            // Get the fields to select from our subquery, so that we can avoid CI_rownum appearing in the actual results
            if (count($this->qb_select) === 0)
            {
                $select = '*'; // Inevitable
            }
            else
            {
                // Use only field names and their aliases, everything else is out of our scope.
                $select = array();
                $field_regexp = ($this->_quoted_identifier)
                    ? '("[^\"]+")' : '(\[[^\]]+\])';
                for ($i = 0, $c = count($this->qb_select); $i < $c; $i++)
                {
                    $select[] = preg_match('/(?:\s|\.)'.$field_regexp.'$/i', $this->qb_select[$i], $m)
                        ? $m[1] : $this->qb_select[$i];
                }
                $select = implode(', ', $select);
            }
            return 'SELECT '.$select." FROM (\n\n"
            .preg_replace('/^(SELECT( DISTINCT)?)/i', '\\1 ROW_NUMBER() OVER('.trim($orderby).') AS '.$this->escape_identifiers('CI_rownum').', ', $sql)
            ."\n\n) ".$this->escape_identifiers('CI_subquery')
            ."\nWHERE ".$this->escape_identifiers('CI_rownum').' BETWEEN '.($offset + 1).' AND '.($offset+$limit);
        }
        return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$limit.' ', $sql);
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末香伴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子具则,更是在濱河造成了極大的恐慌即纲,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件博肋,死亡現(xiàn)場離奇詭異低斋,居然都是意外死亡,警方通過查閱死者的電腦和手機匪凡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門膊畴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人病游,你說我怎么就攤上這事唇跨。” “怎么了礁遵?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵轻绞,是天一觀的道長。 經(jīng)常有香客問我佣耐,道長政勃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任兼砖,我火速辦了婚禮奸远,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讽挟。我一直安慰自己懒叛,他們只是感情好,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布耽梅。 她就那樣靜靜地躺著薛窥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眼姐。 梳的紋絲不亂的頭發(fā)上诅迷,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音众旗,去河邊找鬼罢杉。 笑死,一個胖子當著我的面吹牛贡歧,可吹牛的內(nèi)容都是我干的滩租。 我是一名探鬼主播赋秀,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼律想!你這毒婦竟也來了猎莲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蜘欲,失蹤者是張志新(化名)和其女友劉穎益眉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姥份,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年年碘,在試婚紗的時候發(fā)現(xiàn)自己被綠了澈歉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡屿衅,死狀恐怖埃难,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涤久,我是刑警寧澤涡尘,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站响迂,受9級特大地震影響考抄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蔗彤,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一川梅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧然遏,春花似錦贫途、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秧倾,卻和暖如春怨酝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背中狂。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工凫碌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胃榕。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓盛险,卻偏偏與公主長得像瞄摊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子苦掘,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • sqlmap用戶手冊 說明:本文為轉(zhuǎn)載换帜,對原文中一些明顯的拼寫錯誤進行修正,并標注對自己有用的信息鹤啡。 ======...
    wind_飄閱讀 2,056評論 0 5
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當給sq...
    xuningbo閱讀 10,335評論 2 22
  • php.ini設(shè)置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,779評論 3 64
  • 語 句 功 能 數(shù)據(jù)操作 SELECT——從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列INSERT——向數(shù)據(jù)庫表添加新數(shù)據(jù)行DELE...
    戰(zhàn)敭閱讀 5,103評論 0 53
  • //獲得相關(guān)文章,有兩個參數(shù),分別是文章分類和顯示條數(shù).如果參數(shù)沒有寫的話,默認分類為未分類,顯示條數(shù)為6條 fu...
    f675b1a02698閱讀 179評論 0 0