我正在使用PDO从mySQL数据库调用表,如您所见:
$reponse = $bdd->query('SELECT * FROM exercices WHERE chapitre=\'hello\' ORDER BY id DESC');
现在,我想做同样的事情,而不是'你好'我想在之前使用变量集:
$reponse = $bdd->query('SELECT * FROM exercices WHERE chapitre=\'echo $cat\' ORDER BY id DESC');
它不起作用。我可能有一个问题" echo $ cat"。有人知道吗?谢谢。
答案 0 :(得分:1)
使用绑定变量,我不知道变量的来源,但是为了安全:
$reponse = $bdd->query('SELECT * FROM exercices WHERE chapitre=:cat ORDER BY id DESC');
$reponse->bindParam(':cat', $cat, PDO::PARAM_STR); //assuming it is a string
$reponse->execute();
$result = $reponse->fetchAll(); //make the select
print_r($result); //debug
答案 1 :(得分:0)
将参数作为参数传递时,不需要回显该变量。将整个字符串换行double quotes并放置变量。 PHP会解析双引号字符串,以将变量值放在字符串中。
以这种方式使用
$reponse = $bdd->query("SELECT * FROM exercices WHERE chapitre= '$cat' ORDER BY id DESC");
答案 2 :(得分:0)
您的查询可以是:
$reponse = $bdd->query('SELECT * FROM exercices WHERE
chapitre=\''.$cat.'\' ORDER BY id DESC');
你应该理解“”和“”之间的区别,你也可以“在2个单一的配额中没有任何问题,反之亦然。如果你想写”在2个双重配额中你应该使用\也是相同的,当你写' 2个单一配额。
答案 3 :(得分:0)
我这样做的查询方式是:
$cat = $_POST['cat'];
$response = $bdd->prepare("SELECT * FROM exercices WHERE chapitre= :cat ORDER BY id DESC");
$response->bindParam(':cat', $cat,PDO::PARAM_STR);
$response->execute();
我最喜欢这个,因为它干净且易于理解。