gpt4 book ai didi

php - 关于mysql_real_escape_string的问题

转载 作者:可可西里 更新时间:2023-11-01 07:02:14 26 4
gpt4 key购买 nike

我正在使用 php 开发我的个人网站。一切正常,但我刚刚阅读了 php.net 中的 mysql_real_escape_string 手册并发现了两件事:

  1. This function must always (with few exceptions) be used to make data safe before sending a query to MySQL.
  2. mysql_real_escape_string() does not escape % and _. These are wildcards in MySQL if combined with LIKE, GRANT, or REVOKE.

我有两个问题:
1-这些异常是什么?
2- 如何转义那些字符?

最佳答案

This function must always (with few exceptions) be used to make data safe before sending a query to MySQL.

令我非常失望的是,手册页说完全是垃圾,而且they refuse to make it correct .
因此,恰恰相反,只有少数情况需要此功能。所以说只有一个:当您将 一个字符串 添加到 SQL 查询中时。

mysql_real_escape_string() does not escape % and _. These are wildcards in MySQL if combined with LIKE, GRANT, or REVOKE.

没关系。只要您有意使用 LIKE 运算符,这些字符就不会造成任何伤害。

但是如果你想转义去LIKE语句的字符串,你可以使用这段代码

$like = addCslashes($like,'\%_');

(注意斜线 - 它也需要按照手册说明进行转义。还要注意函数名称中的 C 字母)。
完成此过程后,您可以使用生成的 $like 变量来构建查询 - 引用并转义它们或在准备好的语句中使用。

关于php - 关于mysql_real_escape_string的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com