Mysql 无效的语法错误


Mysql Invalid syntax error

我试图从mysql中获取一些价值

          $email = $_SESSION['email'];
          $email = mysql_real_escape_string($email); 
          $depst = "SELECT dept FROM  stud_reg WHERE email='$email'";
          $query="SELECT * FROM  events WHERE `group`='$depst'";

但是我收到一个未知的错误。

      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '**@**.com''' at line 1

虽然我找不到任何语法错误

由于您不执行第一个查询,因此只需将其用作最后一条语句中的子查询:

改变

$query="SELECT * FROM  events WHERE `group`='$depst'";

$query="SELECT * FROM  events WHERE `group`=($depst)";

您的代码似乎容易受到 SQL 注入攻击(请阅读此内容以获取更多信息)。对于这种事情,您应该使用预准备语句:

$mysqli->prepare("SELECT dept FROM  stud_reg WHERE email=?");
$stmt->bind_param("s", $email);
$stmt->execute();

引用:

  • PHP: mysqli::prepare
  • Bobby Tables:防止 SQL 注入 (PHP) 的指南