Php 服务器添加addslashes()本身。我怎样才能阻止这一切?

Php 服务器添加addslashes()本身。我怎样才能阻止这一切?,php,mysql,sql-server,Php,Mysql,Sql Server,我使用addslashes()插入数据。但服务器也会添加addslashes()本身 例如: $str="jogindersinh's company"; $q="insert into company(company_nm)values(addslashes($str))"; 字符串必须像jogindersinh的公司一样插入数据库中 但由于第二次添加了addaddslashes(),所以数据像jogindersinh的公司一样插入到数据库中 所以当我获取数据时。获取结果jogindersi

我使用
addslashes()
插入数据。但服务器也会添加
addslashes()
本身

例如:

$str="jogindersinh's company";
$q="insert into company(company_nm)values(addslashes($str))";
字符串必须像jogindersinh的公司一样插入数据库中

但由于第二次添加了add
addslashes()
,所以数据像jogindersinh的公司一样插入到数据库中

所以当我获取数据时。获取结果
jogindersinh的公司

那个么我如何停止服务器添加
addslashes()

听起来好像已经启用了。你应该把它关掉


除此之外,
addslashes()
不会保护您免受sql注入的影响。您应该改为使用准备好的语句(如果必须的话,也可以使用专用的转义函数,如
mysql\u real\u escape\u string()
)。

查看php设置文件并禁用魔引号。还可以保护查询不受sql注入的影响。尝试使用Ctype_uu和Mysql_real_escape_string()验证输入。

是否启用了魔术引号?什么是
var_dump(get_magic_quotes_gpc())输出?
addslashes
不应在代码中。不要使用它。你需要这样做。值得注意的是,通常会导致此问题的“Magic Quotes”被认为是一个坏主意,它在PHP5.4中被删除了。或者更好的是,使用准备好的查询和传递变量作为参数,这样您就不必担心转义了。