如何在SQL语法中调试错误?

Fra*_*sco 2 php mysql authentication debugging error-handling

我是SQL/PHP的新手,我无法克服错误消息:

"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 '1',"
Run Code Online (Sandbox Code Playgroud)

我正在尝试调试此错误,但我在脚本中查找"1"并且我只有这一点:

//enter information into table
$sql = "INSERT INTO $_SESSION[table_name] VALUES 
        ('$_POST[first_name]', '$_POST[last_name]', '$_POST[user_name]', 
           password('$_POST[password]'), 'Administrators', '', '', '0', '$_SESSION[admin_email]',
          '$_POST[redirect_to]', '1', '$date')";

$result = @mysql_query($sql,$connection) or die(mysql_error());

if($result)
{...
Run Code Online (Sandbox Code Playgroud)
  1. 我没有发现任何问题.

  2. 我不知道如何调试这个,我该如何继续查找错误?任何线索?

我不确定我是否在正确的位置查看脚本,但这是我有'1'的唯一条目,错误消息告诉我要看...

检查手册后,SQL中的语法似乎是正确的......我在WAMP服务器中使用MySQL 5.5.24.

我正在尝试安装" Login-Redirect v1.31 "进行用户身份验证.

如果有人能帮助我,我真的很感激!

Mar*_*c B 8

在您使用此代码进一步了解之前,请阅读有关SQL注入攻击修复您的代码的信息

您的语法错误几乎肯定是由注入错误引起的,毫无疑问是从'您插入查询的数据中的某个位置引起的.您将原始用户提供的数据传递到查询中,允许恶意用户接管您的服务器,销毁您的数据库,踢你的狗等等......

除此之外,echo $sql在此处执行并粘贴结果,我们将能够准确地向您显示错误的'位置.