准备好的语句是否需要 mysql_real_escape_string() 函数?
当使用给定查询中的准备好的语句时:
$sql = $db->prepare('select location from location_job where location like ?');
$sql->bind_param('s', $consulta);
$sql->execute();
$sql->bind_result($location);
mysql_real_escape_string() 函数不是必需的,因为准备好的语句提供了一种通过转义输入中的任何特殊字符来防止 SQL 注入攻击的安全方法。
改进查询的一个建议是使用“?”占位符,使您能够更方便地通过执行方法传递参数:
$sql->execute([$consulta]);
但是,请确保使用 htmlspecialchars 清理用户输入() 在显示之前防止跨站脚本漏洞。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3