我想逃避所有可能的角色,而不仅仅是mysqli_real_escape_string中预定义的角色

时间:2016-06-17 05:57:18

标签: php mysqli

我目前正在使用mysqli_real_escape_string。它工作正常,但我想知道是否有一个更多更广泛的功能,它将比预定义的那些转义更多的字符,如',“,\ r等。

1 个答案:

答案 0 :(得分:-1)

您应该根据数据的上下文处理数据。

因此,当您将其放入mysql数据库时,您希望对其进行处理,以免干扰内部进程。

当您想要在浏览器中输出数据时,您需要对其进行处理,以使其无法按照其意图进行处理。通过“随机”逃避一切你只是扭曲数据。

但如果你真的想......我猜你可以使用preg_replace()str_replace()addcslashes()来构建自己的'转义'功能。你只需要定义你想要转义的那些charakter(然后在preg_-和str_replace的情况下搜索并用'\'+ charakter替换它们。)

如果您不想只是转义每个数据,但是要将字符串正确地放入数据库,您可能只想使用预备语句。它们与普通查询的工作方式略有不同,因此不必以特定方式处理这些值。 http://php.net/manual/en/mysqli.quickstart.prepared-statements.php