![](/img/trans.png)
[英]Concrete example of where mysql_real_escape_string fails and Prepared Statements are necessary
[英]Is mysql_real_escape_string() necessary when using prepared statements?
对于这个查询,是否需要使用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);
}
在这种情况下,查询速度很重要。
不,准备好的查询(如果使用得当)将确保数据不会更改您的 SQL 查询并提供安全查询。 您正在正确使用它们,但您可以只做一点点改变。 因为您使用的是“?” 占位符,通过execute方法传递参数更容易。
$sql->execute([$consulta]);
如果您将其输出到您的页面,请小心,SQL 参数绑定并不意味着它可以安全地显示在 HTML 中,因此在输出时也要在其上运行htmlspecialchars()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.