我遇到了一个看似正确的mysql数据库查询问题。有问题的查询是:
“SELECT * FROM Users WHERE Email =”。$ email。“;”。查询本身就是 执行正常,但返回的$ result是假的(如果我 将“Email =”。$ email。“”替换为“Id = 1”,它将起作用并返回一个 值)。
if($emailCheck = TRUE){
echo "<script type='text/javascript'>alert('Email check true.');</script>";
$sql = "SELECT * FROM Users WHERE Email =".$email.";";
echo $sql;
$result = $conn->query($sql);
if ($result){
$row = mysqli_fetch_array($result) ;
echo "<script type='text/javascript'>alert('".(string)$row['FirstName']."');</script>";
} else { echo "<script type='text/javascript'>alert('bad result');</script>";}
}
一些信息:
$ emailCheck = TRUE工作正常。
使用“Id = 1”代替“Email =”。$ email。“”一切正常
echo $ sql;返回“SELECT * FROM Users WHERE Email =zxzx@hotmail.com;”
使用“Email =”时为什么$ result返回false的任何帮助。$ email。“”?
答案 0 :(得分:0)
这是因为如果你使用id那么它是整数所以不需要把它放在引号中(&#39;&#39;)但是如果你使用电子邮件然后它是字符串所以你需要在引号中写它(&#39;&#39;)如下
$sql = "SELECT * FROM Users WHERE Email ='" . $email . "'";