尽管“SQL语法错误”消息仍然成功执行

时间:2012-01-05 20:07:48

标签: php mysql sql

尽管弹出错误消息,我的php代码仍然成功执行。代码从我的一个表中删除一行,但显示以下错误消息:

  

错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的“1”附近使用正确的语法

我的php代码如下:

 <?php
$id = $_GET['meeting_id'];
$username = $_GET['username'];

$result = mysql_query("DELETE FROM attendees WHERE meeting_id = '$id' AND username = '$username'")
or die(mysql_error());

if (!mysql_query($result))
  {
        die('Error: ' . mysql_error());
  }
  else 
  {
      echo '<h2>The User Has Been Removed From The Meeting</h2>';

  }
?>

有人能在这看到解决方案吗? 感谢

3 个答案:

答案 0 :(得分:11)

您正在运行mysql_query()两次;一次(正确)查询和第二次

 if (!mysql_query($result))

使用上一个查询的结果。这将导致错误。

你可能想要

 if (!mysql_fetch_object($result))

或类似的东西。

另外,正如评论部分所指出的,您的PHP代码容易受到SQL injection的攻击,您应该修复它。

答案 1 :(得分:1)

您在查询中调用mysql_query(),然后在查询结果上将其称为 。这就是问题所在。删除第二个mysql_query()电话。

答案 2 :(得分:1)

您正在结果集上执行两次查询一次。试试这个:

$result = mysql_query("DELETE FROM attendees WHERE meeting_id = '$id' AND username = '$username'");

if (!$result)
  {
        die('Error: ' . mysql_error());
  }
  else 
  {
      echo '<h2>The User Has Been Removed From The Meeting</h2>';

  }

BTW:您的代码很容易进行SQL注入