Php 带引号的姓氏破坏SQL查询,如何修复此问题?

Php 带引号的姓氏破坏SQL查询,如何修复此问题?,php,mysql,Php,Mysql,可能重复: 我请一位朋友来测试我的网站,他的姓是“a”。O'Rourke所以我对Rourke的语法有错误。显然是由撇号引起的 我如何防止这种情况发生,以便他可以注册到我的网站 $name = $user_profile[name]; mysql_select_db("gamedb", $con); $sql="INSERT IGNORE INTO Users (FID, Name, Date) VALUES ('$fid','$name',NOW())"; 逃跑能解决问题吗?我实际上无法

可能重复:

我请一位朋友来测试我的网站,他的姓是“a”。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帐户检索到的


感谢使用
mysql\u real\u escape\u string()作为变量

$sql = "INSERT IGNORE INTO Users (
          FID, 
          Name, 
          Date
        ) VALUES (
          '" . mysql_real_escape_string($fid) . "',
          '" . mysql_real_escape_string($name) . "',
          NOW()
        )";

对变量使用
mysql\u real\u escape\u string()

$sql = "INSERT IGNORE INTO Users (
          FID, 
          Name, 
          Date
        ) VALUES (
          '" . mysql_real_escape_string($fid) . "',
          '" . mysql_real_escape_string($name) . "',
          NOW()
        )";

使用以下命令对字符串进行转义:

$name = mysql_escape_string($user_profile[name]);

这将防止使用以下内容对字符串进行转义:

$name = mysql_escape_string($user_profile[name]);

这可以防止

在插入行之前,您应该使用
mysql\u real\u escape\u string($sql)
在插入行之前,您应该使用
mysql\u real\u escape\u string($sql)
使用准备好的语句。这将自动处理输入转义。当前插入的
INSERT
对一个用户打开。查看使用准备好的语句。这将自动处理输入转义。当前插入的
INSERT
对一个用户打开。查看您需要在php中使用
mysql\u real\u escape\u string
函数。您可以在这里看到详细信息

您需要在php中使用
mysql\u real\u escape\u string
函数。你可以在这里看到详细信息

除了上面的重复,你真的想点击那篇关于SQL注入的文章的答案中的链接。这不是第一次向你解释这一点吗?除了上面的重复,你真的想点击关于SQL注入的帖子答案中的链接。这不是第一次向你解释这一点吗?这是我认为唯一的答案。