php 在使用预处理语句时,mysql_real_escape_string()是必需的吗?

edqdpe6u  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(136)

对于此查询,是否需要使用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);
}

在这种情况下,查询速度非常重要。

lvjbypge

lvjbypge1#

不,预先准备的查询(如果使用得当)将确保数据不会更改SQL查询,并提供安全的查询。您正在正确地使用它们,但您可以只做一个小更改。因为您使用了'?'占位符,所以通过execute方法传递参数会更容易。

$sql->execute([$consulta]);

如果要将其输出到页面,请小心,SQL参数绑定并不意味着它可以安全地在HTML中显示,因此在输出时也要对它运行htmlspecialchars()

相关问题