【发布时间】:2012-08-22 02:04:17
【问题描述】:
我是 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',"
我正在尝试调试此错误,但我在脚本中查找“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)
{...
我没有发现任何问题。
我不知道如何调试,我应该如何继续查找错误?有什么线索吗?
我不确定我是否在正确的位置查看脚本,但这是我有“1”的唯一条目,错误消息告诉我要查看...
查看手册后,SQL 中的语法似乎是正确的...我在 WAMP 服务器中使用 MySQL 5.5.24。
我正在尝试安装“Login-Redirect v1.31”以进行用户身份验证。
如果有人可以帮助我,我将不胜感激!
【问题讨论】:
-
您应该做的第一件事是打印出您正在生成的 SQL - 里面的东西不是您期望的格式。
-
这可能无助于回答您的问题,但您应该停止使用
mysql_*函数。它们正在被弃用。请改用PDO(PHP 5.1 起支持)或mysqli(PHP 4.1 起支持)。如果您不确定要使用哪一个,read this article. -
您的代码容易受到 SQL 注入的攻击。您真的应该使用prepared statements,将变量作为不获得 SQL 评估。如果你不知道我在说什么,或者如何解决它,请阅读 Bobby Tables 的故事。
标签: php mysql debugging error-handling authentication