0

您好,提前致谢。

我正在从数据库中检索数据。数据mysql_real_escape_string在添加到数据库时已经通过。

检索到后,我会将其与原始变量进行比较,根据结果,我可能会将原始数据库数据重新插入数据库,插入另一个不同的字段。

我的问题是,我必须使用mysql_real_escape_string从数据库中获得的这些数据吗?

我认为是的,因为数据可能包含需要转义的字符,而且我认为反斜杠没有存储在数据库中。

我的代码是:

if(isset($row['location_uri']) && $row['location_uri'] != $location_uri)
    {
    $session_previous_page = $row['previous_page_uri'];
    }
else
    {
    $session_previous_page = $row['location_uri'];
    }

另外,在将数据库数据与原始数据进行比较之前,我是否应该对数据库数据做任何事情,比如从$_SERVER['REQUEST_URI']

谢谢你提供的所有帮助。

4

2 回答 2

3

你应该重新申请。转义函数放在斜杠等中,因此它是有效的 SQL 语法。这些斜线实际上并未存储在数据库中。

于 2010-07-12T16:14:47.543 回答
1

是的。您回答了自己的问题 - 因为特殊字符在读取时被转换,您需要在写入时重新转义它们。

我不确定您关于$_SERVER['REQUEST_URI']. 但是,如果您永远不应该相信这些变量。所以如果你在数据库查询中比较它,至少,我建议转义它。

于 2010-07-12T16:14:35.713 回答