我有这个小问题,希望你能解决。
每当我尝试从数据库中检索哈希时,都会收到此错误: 'where子句'中的未知栏'26657d5ff9020d2abefe558796b99584'
这是我的PHP代码:
<?php
if(isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['hash']) && !empty($_GET['hash'])){
//Verifier les données
$email = mysql_real_escape_string($_GET['email']);
$hash = mysql_real_escape_string($_GET['hash']);
$verification = mysql_query("SELECT email, hash, status FROM utilisateurs WHERE Email = '".$email."' AND
$hash = '".$hash."' AND status = '0'") or die(mysql_error());
$match = mysql_num_rows($verification);
echo $match; // Just for testing how many matches we'll get. We expect "1" or "0"
}else{
//Invalid approach
echo "Invalid approach, please use the link that has been send to your email.";
}
?>
所以当我测试网址时:http://mywebsite.com/verify.php?email=name@gmail.com&hash=26657d5ff9020d2abefe558796b99584我确定哈希是存在的,因为我使用相同的电子邮件从数据库中复制了它
我收到错误: 'where子句'中的未知栏'26657d5ff9020d2abefe558796b99584'
散列是这样做的:$ hash = md5(rand(0,1000));
任何帮助将不胜感激!
答案 0 :(得分:0)
您的SQL查询包含以下条款:
… AND $hash = '".$hash."' AND …
^^^^^
您想要检查hash
列的值,而不是$hash
。