对于PHP函数mysqli\u real\u escape\u string(),$link的用途是什么?
PHP文档注意到,链接标识符是转义字符串所必需的: 字符串mysqli\u real\u escape\u字符串(mysqli$link,字符串$escapestr) $link有什么用途?为什么需要对于PHP函数mysqli\u real\u escape\u string(),$link的用途是什么?,php,mysqli,Php,Mysqli,PHP文档注意到,链接标识符是转义字符串所必需的: 字符串mysqli\u real\u escape\u字符串(mysqli$link,字符串$escapestr) $link有什么用途?为什么需要$link来转义字符串?而$link的不同有效值如何可能导致mysqli\u real\u escape\u string的不同返回值呢?请参考下面的“编辑” 根据手册: 注意: 对于那些习惯于使用mysql_real_escape_string()的人,请注意mysqli_real_esca
$link
来转义字符串?而$link
的不同有效值如何可能导致mysqli\u real\u escape\u string
的不同返回值呢?请参考下面的“编辑”
根据手册:
mysqli.*
函数需要连接
在过去,某些mysql\u
函数,如mysql\u real\u escape\u string()
,假定连接已打开,但在mysqli\u
中未打开
依照
链接标识符
MySQL连接。如果未指定链接标识符,则假定由打开的最后一个链接。如果找不到这样的链接,它将尝试创建一个链接,就像在没有参数的情况下被调用一样。如果未找到或建立连接,将生成E_警告级别错误
更多关于mysqli\uu
API的信息:
编辑:在看到关于我没有回答“为什么”的评论后,我发现了以下关于信息安全堆栈交换的问答,这将更好地解释这一点:
mysqli.*
函数需要连接
在过去,某些mysql\u
函数,如mysql\u real\u escape\u string()
,假定连接已打开,但在mysqli\u
中未打开
依照
链接标识符
MySQL连接。如果未指定链接标识符,则假定由打开的最后一个链接。如果找不到这样的链接,它将尝试创建一个链接,就像在没有参数的情况下被调用一样。如果未找到或建立连接,将生成E_警告级别错误
更多关于mysqli\uu
API的信息:
编辑:在看到关于我没有回答“为什么”的评论后,我发现了以下关于信息安全堆栈交换的问答,这将更好地解释这一点:
- 这是一个很好的、非常符合逻辑的问题。事实上,为什么我们需要一个连接来进行一些小的字符串操作——为某些字符添加斜杠
所有这些麻烦都与角色集有关
$link包含一个mysqli连接。mysqli连接包含关于当前字符集的信息。这个信息是正确转义字符串所必需的,取决于字符集。因此,对于一些不同的(尽管很奇怪)字符集,结果确实会有所不同
可以在中找到不同的返回值示例
这就是为什么
mysqli\u real\u escape\u string()
本身没有什么好处,但应该始终在通过mysqli::set\u charset()设置正确的字符集之后使用
另一方面,我必须说这个功能已经过时了。与其手动转义,不如使用准备好的语句(鉴于mysqli的这种机制是一个大型WTF,强烈建议使用PDO)。这是一个很好的逻辑问题。事实上,为什么我们需要一个连接来进行一些小的字符串操作——为某些字符添加斜杠
所有这些麻烦都与角色集有关
$link包含一个mysqli连接。mysqli连接包含关于当前字符集的信息。这个信息是正确转义字符串所必需的,取决于字符集。因此,对于一些不同的(尽管很奇怪)字符集,结果确实会有所不同
可以在中找到不同的返回值示例
这就是为什么mysqli\u real\u escape\u string()
本身没有什么好处,但应该始终在通过mysqli::set\u charset()设置正确的字符集之后使用
另一方面,我必须说这个功能已经过时了。与其手动转义,还不如使用准备好的语句(鉴于mysqli的这种机制是一个很大的WTF,因此强烈建议使用PDO)。阅读文档的功能令人惊叹;-)无论如何,你好,弗雷德!回答得好。不幸的是,这并不能真正回答“为什么?”@Phil你是对的,我做了一个编辑,其中包含了我在进一步研究这一问题时发现的一个相对链接。阅读文档的效果令人惊讶;-)无论如何,你好,弗雷德!回答得好。不幸的是,这并不能真正回答“为什么?”@Phil你是对的,我在进一步研究这一问题时发现了一个相关链接,并对其进行了编辑。