Php 去掉mysql上的\character\u real\u escape\u string()解析字符串
我的问题似乎微不足道,但我还没有找到任何“好”的解决办法 首先是一个我听过很多答案的问题,什么时候我们需要用Php 去掉mysql上的\character\u real\u escape\u string()解析字符串,php,mysql,database,Php,Mysql,Database,我的问题似乎微不足道,但我还没有找到任何“好”的解决办法 首先是一个我听过很多答案的问题,什么时候我们需要用mysql\u real\u escape\u string()解析字符串?我的想法是,只有当在数据库中存储用户给定的数据时才需要它,这是一个好的规则吗 我的第二个问题,这才是真正的问题。当我用mysql\u real\u escape\u string()解析字符串时,它会在字符串中的任何有害字符之前放置一个特殊字符\,例如,如果函数找到一个',那么它将附加一个\,因此结果是\ 好吧,没
mysql\u real\u escape\u string()
解析字符串?我的想法是,只有当在数据库中存储用户给定的数据时才需要它,这是一个好的规则吗
我的第二个问题,这才是真正的问题。当我用mysql\u real\u escape\u string()
解析字符串时,它会在字符串中的任何有害字符之前放置一个特殊字符\
,例如,如果函数找到一个'
,那么它将附加一个\
,因此结果是\
好吧,没关系,问题是当我从数据库中读取相同的字符串时,我还得到了\
字符。有没有什么好办法摆脱\
角色?
我的一个想法是使用str\u替换(“\\”,“,$string),但这是一种安全的好方法吗
谢谢大家! 您可以使用
例如:
您可以使用
例如:
不会在字符串中放置永久的\
。它只在插入完成之前使用它们
字符串中出现反斜杠最有可能的原因是使用了,或者在您的环境中默认为启用了
在任何情况下,您都可以使用PHP删除它们:
$string = stripslashes($string);
mysql\u real\u escape\u string()
的另一个参考是。不会在字符串中放置永久的\
。它只在插入完成之前使用它们
字符串中出现反斜杠最有可能的原因是使用了,或者在您的环境中默认为启用了
在任何情况下,您都可以使用PHP删除它们:
$string = stripslashes($string);
mysql\u real\u escape\u string()
的另一个参考是。添加的\
字符实际上不会插入数据库。如果您在检索时获得这些,是因为启用了类似的功能,并且您将自动添加斜杠
这就是说,您真的应该切换到或,因为mysql\uu
函数已被弃用。
您的第一个问题是正确的,任何用户输入都应该在插入之前正确转义。PDO和Mysqli允许您使用准备好的语句,并且还提供它们自己的转义函数
关于第二个问题,请尝试以下代码:
if (get_magic_quotes_gpc()) {
$value = stripslashes($_POST['value']);
}
这将删除PHP自动添加的任何斜杠。有关的详细信息。添加的
\
字符实际上不会插入数据库。如果您在检索时获得这些,是因为启用了类似的功能,并且您将自动添加斜杠
这就是说,您真的应该切换到或,因为mysql\uu
函数已被弃用。
您的第一个问题是正确的,任何用户输入都应该在插入之前正确转义。PDO和Mysqli允许您使用准备好的语句,并且还提供它们自己的转义函数
关于第二个问题,请尝试以下代码:
if (get_magic_quotes_gpc()) {
$value = stripslashes($_POST['value']);
}
这将删除PHP自动添加的任何斜杠。更多信息。首先,不鼓励使用mysql\u real\u escape\u字符串。检查magic_quotes是否打开:
echo "Magic quotes is " . (get_magic_quotes_gpc() ? "ON" : "OFF");
或者您可以使用
stripslashes
首先,不鼓励使用mysql\u real\u escape\u字符串。检查magic_quotes是否打开:
echo "Magic quotes is " . (get_magic_quotes_gpc() ? "ON" : "OFF");
或者您可以使用
stripslashes
这不是由该函数引起的,而是由PHP设置引起的。这不是由该函数引起的,而是由PHP设置引起的。谢谢!我会检查一下魔法库特斯。好的,那么mysql_r_e_s是不被鼓励的,是因为使用了mysql_函数还是为什么不被鼓励??使用mysqli_r_e_s可以吗?如果不行,如何从垃圾中清除字符串?最好使用准备好的语句:。出于许多原因,使用PDO对您来说更好。也请查看此链接:谢谢!我会检查一下魔法库特斯。好的,那么mysql_r_e_s是不被鼓励的,是因为使用了mysql_函数还是为什么不被鼓励??使用mysqli_r_e_s可以吗?如果不行,如何从垃圾中清除字符串?最好使用准备好的语句:。出于许多原因,使用PDO对您来说更好。还可以查看以下链接:为什么mysql_函数不受欢迎?我从来没听说过这件事,所以最好能给我一个解释。基本上,它们缺乏对许多功能的支持(例如,准备好的报表和交易)。而且它们不是面向对象的。现在,弃用过程已经开始,我们可以预期这些函数将不再存在于未来的PHP版本中,尽管目前还没有正式版本。所有函数的手册页面都有一个红色的框来解释。嗯,似乎我还需要进行一些重构;-)我同意您的解释,使用mysqli更明智,因此感谢您提供的信息!这至少需要考虑一下。如果您来自mysql函数,那么Mysqli是一个很好的起点。要习惯的差别很小。希望您不必做太多更改:)为什么mysql_函数不受欢迎?我从来没听说过这件事,所以最好能给我一个解释。基本上,它们缺乏对许多功能的支持(例如,准备好的报表和交易)。而且它们不是面向对象的。现在,弃用过程已经开始,我们可以预期这些函数将不再存在于未来的PHP版本中,尽管目前还没有正式版本。所有函数的手册页面都有一个红色的框来解释。嗯,似乎我还需要进行一些重构;-)我同意您的解释,使用mysqli更明智,因此感谢您提供的信息!这至少需要考虑一下。如果您来自mysql_uufunct,那么Mysqli是一个很好的起点