繁体   English   中英

PHP mysqli_real_escape_string参数

[英]PHP mysqli_real_escape_string argument

我不是问如何使用该功能。

我知道mysqli_real_escape_string的功能是什么或如何使用它,但我想问一下,为什么它的第一个参数需要引用mysqli连接?

这里有一些猜测,但我不知道我是否猜对了:

  • 该函数是否触发对数据库连接的任何调用,以便它需要连接以转义字符串?
  • 这是PHP实现中的一些技术限制吗?
  • 还是其他任何原因?

这个问题令我感到不安,因为我的软件中有多线程,我有一个接受字符串查询作为参数的函数,并将查询推送到另一个线程执行,所以我无法获取MySQLi的实例以逃避我的字符串查询。

来自http://php.net/manual/de/mysqli.real-escape-string.php:mysqli :: real_escape_string - mysqli_real_escape_string - 转义字符串中的特殊字符以用于SQL语句, 同时考虑当前的字符集连接

简而言之:该函数必须知道您的连接使用什么字符集。

替代mysql_real_escape_string而不连接到DB

这基本上解释了原因。 必须知道MySQL连接使用的char集。 如果不这样做,则可能会进行多字节SQL注入,具体取决于您的代码。 无论如何,除非你编写自己的函数,否则你需要使用MySQL实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM