PHP SQL数据库查询错误

标签 php mysql

我在对 mysql 数据库进行看似正确的查询时遇到了麻烦。有问题的查询是:

"SELECT * FROM Users WHERE Email =".$email.";". The Query itself is executing fine but the $result that is returned back is false (if i replace "Email =".$email."" with "Id = 1" it works and returns a value).

  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 =".$email."”时为什么 $result 返回 false 有任何帮助吗?

最佳答案

这是因为如果您使用 id 那么它是整数,所以不需要将其放在引号('')中但是如果您使用电子邮件那么它是字符串所以您需要将其写在引号('')中,如下所示

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

关于PHP SQL数据库查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35331019/

相关文章:

mysql - 如何获取每个产品/进入日期最近 4 周的数据

php - WAMP 2.4 - MYSQL 实例图标保持橙色

mysql:比较两列

MySql - 结合 REGEXP 和 BETWEEN 函数

mysql - 内连接内的 SQL 查询

javascript - 将变量从 Twig 传递给js

php - 如何将 file_get_contents 与相对路径一起使用

javascript - AJAX 成功无法将数据填充到表格 HTML

php - 使用动态名称访问命名空间内的常量

php - Laravel 处理用户生成的错误