我正在制作一个BIG
脚本。
每次在数据库中添加某些内容时,它都会应用addslashes();
问题在于从数据库中选择数据时它没有stripslashes();
此脚本使用的是基本的mysql驱动程序。
我无法编辑脚本中的任何SELECT
,因为它们很多,并且它们不是集中式脚本,而是遍布整个脚本。
我可能需要很长时间才能删除每个SELECT
上的斜杠。
所以我想知道是否有办法拦截每个SELECT
并剥去那里的斜线..
我正在查看http://us3.php.net/override_function,但我不确定它会有用。
答案 0 :(得分:1)
每次在DB中添加某些内容时,它都会应用addslashes();
你做错了。您应该使用正确的转义方法。 addslashes()
不合适。即对于mysql,它将是mysql_real_escape_string()
(或mysqli_....
)
问题在于从数据库中选择数据时它没有执行stripslashes();
当然不会这样做。 DB这样做是没有意义的,所以一切都很好。
我可能需要很长时间才能在每个SELECT上删除斜杠。
这一切都是因为你做错了。如果您正确地逃避特殊值(而不是整个查询),那么您在阅读时无需费心。我有一种感觉,你不明白为什么你需要在第一时间逃脱而你正试图修复并不是真的知道你在做什么。还要注意一些像PDO这样的数据库帮助程序会自动处理转义,所以你甚至不需要打扰。