PHP语法中的明显错误?

时间:2013-02-06 21:56:13

标签: php sql syntax

我收到以下错误: 错误:SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在第3行“.98.229”附近使用正确的语法

在我的PHP代码上,如下所示:

<?php
$con = mysql_connect("****", "****", "****");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("****", $con);
$ip=$_SERVER['REMOTE_ADDR'];

$sql="INSERT INTO users (fname, lname, email, password, ip)
VALUES
('$_POST[fname]', '$_POST[lname]', '$_POST[email]', '$_POST[password]', $ip)";

if (!mysql_query($sql,$con))
  {
die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con);
?>

有什么建议吗? :)

3 个答案:

答案 0 :(得分:3)

$ip可能应为'$ip',以使其成为字符串。

我确定我不是最后一个跟你说你应该使用mysqliPDO参数化输入的人。允许用户输入成为查询字符串的一部分是一个巨大的安全禁忌。

答案 1 :(得分:1)

在做你做的事情之前,你应该真的使用PDO并检查你的POST。你完全容易受到SQL注入攻击。

Are PDO prepared statements sufficient to prevent SQL injection?

答案 2 :(得分:0)

架构中IP列的字段类型是什么?我想它需要像你声明中的其他字符串一样被引用。

您熟悉SQL InjectionPDO吗?

此外,您可能希望对如何在数据库中最佳地存储IP地址进行一些研究。