我让一位朋友测试我的网站,他的姓氏有一个'。 O'Rourke所以我在Rourke周围的语法错误。显然是由撇号引起的。
如何防止这种情况发生,以便他可以注册到我的网站?
$name = $user_profile[name];
mysql_select_db("gamedb", $con);
$sql="INSERT IGNORE INTO Users (FID, Name, Date) VALUES ('$fid','$name',NOW())";
逃避是否解决了这个问题?我实际上无法尝试转义它,因为该名称是从usr facebook帐户中检索的。
由于
答案 0 :(得分:3)
使用预备语句。这将自动处理输入转义。当前INSERT
向SQL injection attack开放。查看mysqli_stmt::prepare()
答案 1 :(得分:1)
使用mysql_real_escape_string()
作为变量
$sql = "INSERT IGNORE INTO Users (
FID,
Name,
Date
) VALUES (
'" . mysql_real_escape_string($fid) . "',
'" . mysql_real_escape_string($name) . "',
NOW()
)";
答案 2 :(得分:0)
答案 3 :(得分:0)
在插入行之前应使用mysql_real_escape_string($sql)
答案 4 :(得分:0)
你需要在php中使用mysql_real_escape_string
函数。您可以在此处查看详细信息http://php.net/manual/en/function.mysql-real-escape-string.php