是dbsk的所有文本所必需的stripslashes(),在途中是mysql_real_escape()吗?

时间:2010-06-04 11:45:42

标签: php

当我向mysql数据库添加内容时,我使用mysql_real_escape_string(),然后将其放入数据库。

当我稍后从带有mysql_query()和mysql_fetch_array()的数据库中获取它时,我是否需要stripslashes(),或者这些函数中的一个是否为我做了,或者它只是不是必需的?

2 个答案:

答案 0 :(得分:2)

转义字符永远不会存储在数据库中。当SQL解析器解析您的查询时,它们就会消失。

您的问题显示出对逃避行为的根本误解。转义字符只是告诉解析器忽略解析器赋予字符的特殊含义的一种方法。将字符串解析为内存中的结构后,没有理由保留转义字符。

如果你看到无关的斜杠,你的服务器可能配置错误,你可能会被一个名为magic quotes的延迟PHP功能所困扰。

答案 1 :(得分:0)

它不是必需的,它将返回正常的字符串。