ThinkPHP 2053錯誤

來源:互聯網
上載者:User

標籤:class   input   ram   error   迴圈   access   dos   lstat   call   

這個報錯是調用預存程序的時候產生的,用的是5.1的代碼是根據官方文檔寫的,我懷疑5.0也有這個問題。去官方查了一下發現不少人有這個問題,但是官方都沒有回應過,只能自己動手一步步調了。

 

$center = input(‘c‘,1);
$outParam = null;
$data = Db::query(‘call get_day(:in_param2)‘,[
‘in_param2‘ => [&$center, \PDO::PARAM_INT],

]);

  注意這裡的變數要用引用的方式

 

TP5.1 報錯 SQLSTATE[HY000]: General error: 2053

  

 

原因:

在 \thinkphp\library\think\db\Connection.php 裡面有這麼一個擷取預存程序結果的函數

/**     * 獲得預存程序資料集     * @access protected     * @return array     */    protected function procedure()    {        $item = [];        do {            $result = $this->getResult();            if ($result) {                $item[] = $result;            }        } while ($this->PDOStatement->nextRowset());        $this->numRows = count($item);        return $item;    }

  我列印出來

$this->getResult();

返回的結果集就是一個,但是這裡又判斷迴圈是否下一行,我懷疑就是這裡出錯了。把這裡擷取結果集直接返回就可以了

/**     * 獲得預存程序資料集     * @access protected     * @return array     */    protected function procedure()    {        $result = $this->getResult();        $this->numRows = count($result);        return $result;    }

  

ThinkPHP 2053錯誤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.