【发布时间】:2017-08-12 01:52:56
【问题描述】:
我真的是 PDO 的新手,我无法让它工作:
我想检查验证码。每天,询问的代码根据天数变化。在我的数据库中,一个表包含两列:JOUR (=day) 和 REPONSE (=answer)。用户输入我存储在 $code_entre 中的代码。此代码必须与输入代码进行比较。
使用 date() 方法,我得到了当天的数字。我将它存储在 $numero_jour 中。我的代码应该获取当天的代码并将其与输入的代码进行比较。这是代码:
$numero_jour = date(j); //Récupère le numéro du jour en cours.
$sql2 = $bdd1->prepare('SELECT JOUR FROM questions_securite WHERE REPONSE=:reponse LIMIT 1');
$sql2->bindParam(':reponse', $code_entre, PDO::PARAM_STR);
$sql2->execute();
$req2 = $sql2->fetch();
$sql2->closeCursor();
if($req2 != $numero_jour) {
return 'Erreur de code de sécurité. Veuillez recommencer.';
}
...什么也没有发生!我尝试了“echo $req2”指令,得到的只是“Array”这个词。
我做错了什么?我确定解决方案很简单,但我没有找到它!
谢谢!
【问题讨论】:
-
最好回到官方手册和有价值的教程
-
附注:确保所有错误消息都以一种普遍理解的语言或最接近的语言使用。我显然指的是英语。
-
要查看
$req2中的内容,请使用var_dump($req2),它会告诉您更多信息。 -
阅读
fetch的文档,当然它是在呼应Array,因为它包含一个数组! -
您好,感谢您的回复。我已经阅读了很多关于使用 PDO(php.net、php-manual.net 等)的页面,但我认为问题出在我对 fetch() 方法检索的结果的概念上。当我要求在两列表中使用 WHERE 获取特殊数据时,我希望从另一列中获取一个字符串。我没有想到使用循环来搜索结果,因为我知道在这个表中,只有一个对应的行。但在其他情况下,可能有几个!
标签: php select pdo execute prepare