预准备语句是否需要 mysql_real_escape_string() 函数?
在给定查询中使用预准备语句时:
<code class="php">$sql = $db->prepare('select location from location_job where location like ?'); $sql->bind_param('s', $consulta); $sql->execute(); $sql->bind_result($location);</code>
mysql_real_escape_string() 函数不是必需的,因为准备好的语句提供了通过转义输入中的任何特殊字符来防止 SQL 注入攻击的安全方法。
改进查询的一个建议是利用“?”占位符,使您能够更方便地通过执行方法传递参数:
<code class="php">$sql->execute([$consulta]);</code>
但是,请确保在显示用户输入之前使用 htmlspecialchars() 对其进行清理,以防止跨站脚本漏洞。
以上是我需要带有准备好的语句的'mysql_real_escape_string()”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!