预准备语句是否需要 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中文网其他相关文章!