一尘不染

mysql_real_escape_string()是否损坏?

mysql

有些人认为这样做mysql_real_escape_string()存在一些缺陷,即使正确使用也无法保护您的查询。
带一些化石的物品作为证明。

因此,问题是:mysql [i] _real escape_string()完全不可接受吗?
还是仍然可以使用此功能来创建自己的预备语句?

请提供校对码。


阅读 204

收藏
2020-05-17

共1个答案

一尘不染

MySQL的C
API函数mysql_real_escape_string描述

如果需要更改连接的字符集,则应使用mysql_set_character_set()函数而不是执行SET NAMES(或SET CHARACTER SET)语句。mysql_set_character_set()的工作方式类似,SET NAMES但也会影响所使用的字符集mysql_real_escape_string(),而SET NAMES不会。

因此,不要使用SET NAMES/ SET CHARACTER SET而是PHPmysql_set_charset来更改编码,因为它与MySQL的编码相对应mysql_set_character_set(请参见
/ext/mysql/php_mysql.c的
源代码
__
)。

2020-05-17