2013-03-06 133 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