何時需要準備好的語句
當您最初使用mysql_connect 和mysql_query 來管理資料庫互動時,對SQL 注入的擔憂促使您進行調查準備好的陳述。然而,出現了一個常見的誤解:準備好的語句只是保護使用者輸入所必需的嗎?
為什麼你應該始終使用準備好的語句
答案是響亮的:始終使用準備好的語句聲明,無一例外。即使您在使用mysql_num_rows 時沒有明顯面臨駭客風險,由於以下原因,使用準備好的語句也更優越:
準備好的語句如何運作
準備好的語句單獨傳輸查詢和數據,允許資料庫將它們作為一個事務執行。這種保護措施比連接查詢和資料強大得多,這是使用 mysql_* 函數和渲染容易受到 SQL 注入的資料庫的做法。
在PHP 庫中使用準備好的語句
透過PDO,您可以使用以下說明性程式碼來利用準備好的語句:
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?,?)"); $stmt->execute([$name, $value]);
With MySQLi,程式碼如下:
$dbh->execute_query("INSERT INTO REGISTRY (name, value) VALUES (?,?)", [$name, $value]);
其他資源
以上是我應該在資料庫互動中始終使用準備好的語句嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!