PHP SQL数据库查询错误

时间:2016-02-11 04:51:56

标签: php mysql

我遇到了一个看似正确的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。“”?

1 个答案:

答案 0 :(得分:0)

这是因为如果你使用id那么它是整数所以不需要把它放在引号中(&#39;&#39;)但是如果你使用电子邮件然后它是字符串所以你需要在引号中写它(&#39;&#39;)如下

$sql = "SELECT * FROM Users WHERE Email ='" . $email . "'";