【发布时间】:2012-09-01 23:43:01
【问题描述】:
可能重复:
Mysql Real Escape String PHP Function Adding “\” to My Field Entry
所以这就是交易。我有一个本地服务器和一个远程服务器,它们都运行相同的 php 文件,该文件连接到 2 个相同的 mysql 数据库。在本地服务器上,命令
mysql_query("INSERT INTO eventtypes (name) VALUES ('".addslashes($_GET['name'])."')")
就像一个魅力,不插入斜线到字段中,只有 $_GET['name'] 的原始值。然而,在远程服务器上,斜线也被插入。我试过这些:
mysql_query("INSERT INTO eventtypes (name) VALUES ('".str_replace("'","''",$_GET['name'])."')
这个返回false,虽然当我在对应数据库的命令行上运行准确返回的字符串时,它正确地插入了适量的单引号,这很奇怪。
mysql_query("INSERT INTO eventtypes (name) VALUES ('".mysql_real_escape_string($_GET['name'])."')")
mysql_real_escape_string() 只在单引号中添加斜线,也像addslashes() 一样插入。
【问题讨论】:
-
您不想在单引号中添加斜杠吗?我真的不明白你想做什么,你的标题在你说
mysql_real_escape_string的最后声明“转义单引号”只添加到单引号。底线:不要使用mysql_*函数,因为它们已被弃用。
标签: php mysql quotes mysql-real-escape-string addslashes