預準備語句是否需要 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中文網其他相關文章!