【发布时间】:2018-06-27 13:25:22
【问题描述】:
我有一个 php 脚本,它使用 PDO 询问我的数据库以验证发送的某些值是否存在。如果它们存在,则数据库以该行值的 id 响应。
我在 mysql 上测试了查询,它可以工作,但收到的值为false。
此代码仅供个人使用。
有代码:
<?php
include("../template/pdo.php");
$query = $pdo->prepare("SELECT id_utilisateur FROM utilisateur
WHERE `mail` IN ( ':mail' )
AND `mdp` IN ( ':mdp' )");
$query->bindParam(':mail', $_GET['identifiant'], PDO::PARAM_STR);
$query->bindParam(':mdp', $_GET['mdp'], PDO::PARAM_STR);
$success = $query->execute();
if($success)
{
$result = $query->fetch();
var_dump($result); //bool(false) actually
if($result == false){
$message = "Try again.";
}
else{
$message = "Congratulation !";
}
}
我测试了我所知道的一切:
$_GET是从我的数据库表打印/粘贴到我的 url,我已经打印了他用我的
$_GET值打印/粘贴到phpMyAdmin来自PDOStatement::debugDumpParams()的查询pdo.php工作并用于其他脚本我的日志文件中没有日志。
有人可以帮助我吗? 谢谢!
【问题讨论】:
-
':mail' 命令分隔 id ??
-
不要引用占位符。它会将其作为字符串读取,而不是将您的值放入其中。
-
这里我也质疑
IN ( )的用户。如果这些输入是数组或逗号分隔值,则不能从单个占位符绑定它们。 -
无论你是我的主人,它都有效。我知道一件小事有罪但没有找到..