php - mysql real escape string - 这正常吗?

标签 php mysql mysqli mysql-real-escape-string

当我使用 mysqli->real_escape_string 并向数据库添加一个字符串值(例如“who's”)时,它会添加字符串而不以任何方式修改引号。当我检查数据库时,其中的值是“who's”。

当我不使用 mysqli->real_escape_string 并添加一个带有单引号的字符串,如“who's”时,它不会被添加到数据库中。它无处可寻。

这不正常,是吗?

最佳答案

是的,是的。用比这更详细的方式回答这个问题有点困难。

real_escape_string()转义 数据以便它可以安全地用于查询,它不会以任何方式修改数据。如果您不对它进行转义,则查询中存在语法错误,因此会失败 - 并且不会插入数据。

然而,转义数据最安全的方法是使用 prepared statements .

关于php - mysql real escape string - 这正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11443206/

相关文章:

php - CakePHP 2.0.5 表单输入日期时间语言

mysql - Alter Table Engine = InnoDB 可以同时在多个表上运行吗?

php - 我如何将 Mysqli 表结果转换为带有下拉菜单的菜单

php - bool 值错误 - mysqli

php - 我如何在同一页面上有多个帖子,以便我可以根据每个帖子查询同一个表?

php - 使用 php 脚本备份包含 3 个月前数据的特定表

php - 如何在 PHP 中处理大量数据

php - 缩放时间轴的最佳 javascript 图形..

mysql - 计算时间值的百分比是0 vs 1

php - 将 SQL 表导出到 CSV,列名未出现