2013-03-06 106 views
1

在PHP代碼中的以下SQL查詢不起作用,有人可以幫助我嗎?變量在哪裏條件

$reponse = $bdd->query("SELECT * FROM tasks WHERE destinataire = ':destinataire' ORDER BY maturity ASC"); 
$reponse->execute(array(
       ':destinataire'=>$_SESSION['login'] 
       )); 

正確的查詢是如下:

$reponse = $bdd->prepare("SELECT * FROM tasks WHERE destinataire = :destinataire ORDER BY maturity ASC"); 
+0

什麼是錯誤信息,或者代碼不起作用? – rrehbein 2013-03-06 17:25:15

+0

@rrehbein在做了JW提示我之後,我得到了以下錯誤 致命錯誤:調用一個成員函數execute()對64行非C:\ wamp \ www \ progecoo2 \ tasks.php中的非對象 – Henri 2013-03-06 17:30:20

回答

9

當你想參數化查詢,參數不應該用單引號包裹,因爲他們轉換爲字符串文字意義它們只是常規值而不是參數)。刪除單引號,它將工作。

$reponse = $bdd->prepare("SELECT * FROM tasks WHERE destinataire = :destinataire ORDER BY maturity ASC"); 
+0

你爲你的答案。但是,我得到以下錯誤:致命錯誤:調用一個成員函數execute()對於C:\ wamp \ www \ progecoo2 \ tasks.php中的非對象執行64行 – Henri 2013-03-06 17:27:24

+2

您必須使用prepare,而不是查詢。 – Galen 2013-03-06 17:31:18

+0

@Galen好吧,它的作品!謝謝。 – Henri 2013-03-06 17:32:13