转义字符串vs准备好的语句

时间:2015-12-06 12:29:15

标签: php mysql mysqli sql-injection

我清理了一些旧的项目代码,特别是数据库通信部分。我注意到,只要代码需要与包含用户输入的数据库通信,代码就像:

$user_input = $mysqli->real_escape_string($user_input);
$mysqli->query("INSERT INTO foo (bar) VALUES ('$user_input')");

换句话说,只要查询包含用户输入的数据以防止SQL注入,它就会在整个地方使用real_escape_string

我最初要将所有这些real_escape_string调用替换为预准备语句和参数化查询,但很可能原因是前一个开发人员使用real_escape_string而不是预处理语句。

那么,是否会出现real_escape_string优于预备语句的情况?性能怎么样?

0 个答案:

没有答案