我正在构建一个简单的登录系统。我遇到的麻烦是从数据库中获取密码哈希。无法从PDO中获取MySQL表的结果
这是我有:
$statement = 'SELECT Pass FROM Emails WHERE Email = "?"';
$question = array($email);
try {
$DB->beginTransaction();
$preparedStatement = $DB->prepare($statement);
$preparedStatement->execute($question);
$resultArr = $preparedStatement->fetchAll();
print_r($resultArr);
$DB->commit();
} catch(\PDOException $ex) {
echo "Seriously bad error. ";
echo $ex->getMessage();
return false;
}
我的问题是$resultArr
总是不包含任何元素。
我知道SQL查询本身起作用,因为我直接在MySQL中测试它。
我相信我必须使用预先准备好的语句,因为我向MySQL发送用户输入信息,并且必须抵御简单的SQL注入攻击。我使用fetchAll()
为了确保给定的电子邮件只有一个结果。否则,将会有一个巨大的问题。
这里我的错误是什么?
为什么'$问题=阵列($电子邮件)使用唯一索引邮件;'?为什么不只是'$ question = $ email;'? –
[使用PDO从MySQL获取结果]的可能重复(http://stackoverflow.com/questions/13962789/get-results-from-from-mysql-using-pdo) –
删除双引号? – Hytool