快一个。
我正在将使用 mysql 的旧 Web 应用程序迁移到 mysqli。我曾经使用我编写的自定义清理功能来防止 SQL 注入:
function sani($text=""){
if (!is_array($text)) {
$text = str_replace("<", "<", $text);
$text = str_replace(">", ">", $text);
$text = str_replace("\"", """, $text);
$text = str_replace("'", "'", $text);
return $text;
}
}
他们的方式我曾经使用这个:
mysql_query("SELECT * FROM `table` WHERE `username` = '" . $sani($userinput) . "'");
基本上它所做的只是更改可用于注入 html 编码的符号。到目前为止它工作得很好,但是由于我正在迁移到 mysqli,我想知道准备好的语句是否比这个函数更安全。
另外,我已经阅读了很多关于准备好的和未准备好的语句之间的速度差异,真的那么明显吗?我每秒大约进行一百次查询,所以我怀疑我会受到很大影响吗?
谢谢!