对于这个查询,有必要使用mysql_real_escape_string吗?
任何改进或查询都没问题?
$consulta = $_REQUEST["term"]."%";
($sql = $db->prepare('select location from location_job where location like ?'));
$sql->bind_param('s', $consulta);
$sql->execute();
$sql->bind_result($location);
$data = array();
while ($sql->fetch()) {
$data[] = array('label' => $location);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,查询速度很重要.
最初我使用mysql_connect和mysql_query来做事.然后我学习了SQL注入,所以我试图学习如何使用预处理语句.我理解PDO类的准备和执行函数如何有助于防止SQL注入.
但是,只有在用户输入存储到数据库中时才需要准备语句.还是可以继续使用mysql_num_rows,因为我真的没有冒这个功能被黑客入侵的风险吗?或者使用预准备语句来执行此操作更安全吗?我是否应该为涉及使用mysql的所有内容使用预准备语句?为什么?
我真的很感激任何答案和反馈.谢谢.
我读了很多文章,说使用准备好的语句非常安全,并且可以很好地防止 SQL 注入。我在不使用准备好的语句的情况下构建了一些网站。但是在阅读了所有这些文章之后,我正在考虑使用准备好的语句来更改整个代码。
我的问题
是否有必要始终使用准备好的语句?或者是否有任何情况下,正常语句就足以超过准备好的语句?