PHP MYSQL结果中的三斜杠
我使用了PHP MYSQL结果中的三斜杠,php,mysql,Php,Mysql,我使用了mysql\u real\u escape\u string将信息输入数据库,但是当我在查询中返回信息时,我在文本中得到了\\\'。我这样做是为了在保存时插入查询不再停留在语句中的”。如果一篇文章的标题中有撇号,它会在中途停止保存标题。这个问题已经解决了,但是现在我得到了一个撇号 示例:Microsoft\\\\\\\$15的Windows 8升级优惠将于6月2日至1月31日推出,其中包括免费研讨会 我从数据库返回列表的查询代码如下所示:(注意,这是一个摘录,因此不包含此循环的结束) 不
mysql\u real\u escape\u string
将信息输入数据库,但是当我在查询中返回信息时,我在文本中得到了\\\'
。我这样做是为了在保存时插入查询不再停留在语句中的”
。如果一篇文章的标题中有撇号,它会在中途停止保存标题。这个问题已经解决了,但是现在我得到了一个撇号
示例:Microsoft\\\\\\\$15的Windows 8升级优惠将于6月2日至1月31日推出,其中包括免费研讨会
我从数据库返回列表的查询代码如下所示:(注意,这是一个摘录,因此不包含此循环的结束)
不要与此一起使用,只需使用
要使用数据库中当前的数据,请对返回的数据使用两次
但是,最好更正数据库中的内容,并更改插入脚本,以便将来不再插入损坏的数据(可能涉及删除对或的调用)。首先,如果您可以阅读签出页面,我会要求您的web主机禁用magic quotes警告:此功能已在PHP5.3.0之前被弃用,并从PHP5.4.0开始删除
您不能在运行时禁用它,因此您的主机必须在php配置中进行更改。
如果您的主机拒绝禁用magic quotes,您可以创建一个php函数,例如“secVar()”,您可以在每个mysql查询中使用它,而不是使用“mysql\u real\u escape\u string”
那么您的函数“secVar”将是:
如果在web主机上激活了“神奇报价”:
function secVar($var){
return $var;
}
function secVar($var){
return mysql_real_escape_string($var)
}
如果在web主机上禁用了“魔力报价”:
function secVar($var){
return $var;
}
function secVar($var){
return mysql_real_escape_string($var)
}
通过这种方式,您可以在Web主机禁用magic quotes或更改主机时快速更新脚本以保护变量
您也可以用另一种方式解决问题:
在脚本执行之前,在运行时“放置”魔术引号。通过内存,“魔术引号”放置在以下变量数组中:$\u请求、$\u发布、$\u获取、$\u文件,以及其他可能的变量。
知道你可以
1.检查是否启用了魔术引号
2.如果是这样的话,从每个数组中去掉所有受魔法引号影响的变量的斜杠
一个或另一个解决方案应该适合你
玩得开心!展示如何插入database@TheTechBox:其他可能的转义字符组合如何?最好按照中的建议使用。