1

我正在编写一个BIG脚本。

每次在数据库中添加某些内容时,它都会应用addslashes();

问题是从数据库中选择数据时它没有做stripslashes();

该脚本使用基本的 mysql 驱动程序。我无法编辑SELECT脚本中的任何内容,因为它们很多,而且它们不在集中的脚本中,而是放在整个脚本中。

我可能需要很长时间才能剥离每个SELECT. 所以我想知道是否有办法拦截每一个SELECT并从那里剥离斜线..

我正在查看http://us3.php.net/override_function,但我不确定它是否有用。

4

1 回答 1

1

每次在数据库中添加一些东西时,它都会应用 addlashes();

你这样做是错误的。您应该使用正确的转义方法。addslashes()不合适。即对于mysql,它将是mysql_real_escape_string()(或mysqli_....

问题是在从数据库中选择数据时,它没有执行 stripslashes();

当然它不会这样做。DB 这样做是没有意义的,所以一切都很好。

我可能需要很长时间才能去除每个 SELECT 上的斜线。

这都是因为你做错了。如果您正确地转义了特殊值(不是整个查询),那么您在阅读过程中就不需要费心了。我有一种感觉,你不明白为什么你首先需要逃跑,并且你试图解决不知道自己在做什么的问题。还要注意一些数据库助手,比如 PDO 会自动处理转义,所以你甚至不需要费心。

于 2013-10-24T11:45:27.527 回答