2012-01-24 26 views
0

我有以下問題:PDO在笨,無法綁定PARAMS

環境 PHP,與PDO笨框架。

我的代碼

public function index(){ 

     $sql = "SELECT ........ LIMIT ?,?"; 

     $q = $this->db->prepare($sql); 

     $limit = 0; 

     $offset = 10; 

     $q->execute(array($limit, $offset));   

     $r = $q->fetch(); 

     var_dump($r); 

    } 

問題:有在SQL查詢中作爲沒有問題,如果我硬編碼LIMIT子句中的任何整數(例如,0,10);該查詢返回期望的結果。結合PARAMS只有當出現問題。

錯誤顯示傾倒在上面的代碼中的$ R返回布爾(假)

現在,下面的代碼成功運行,

public function index(){ 

     $sql = "SELECT ........ LIMIT 0,10"; 

     $q = $this->db->prepare($sql);   

     $q->execute();   

     $r = $q->fetch(); 

     var_dump($r); 

    } 

什麼都可以在這個問題以前的代碼綁定?我做錯了,還是可能會有機會,由於默認默認不支持PDO的Codeigniter?

+3

我可能是錯的,但你不綁定LIMIT(也列名),但只有價值。的 –

+0

可能重複[如何設置ORDER BY使用準備好的聲明PDO PARAMS?(http://stackoverflow.com/questions/2542410/how-do-i-set-order-by-params-using-prepared-pdo - 陳述) – Maerlyn

+0

@DamienPirsy:你說得對。我與其他條款進行了檢查,發現有所不同。我的不好,我認爲在這個條款的限制和抵消作爲價值觀。我想我需要直接通過它並使用我自己的驗證。 thanx的快速評論 – itachi

回答

1

至於勸,我把我自己的答案。

不能by子句綁定變量來限制或ORDER

SOLUTION:

通過它在SQL查詢中的變量(可能與INTVAL消毒只是更安全。 )