在 PHP 中建立安全的 MySQL 準備語句
準備語句為資料庫查詢提供更高的安全性和潛在的效能改進。這是使用 URL 參數的輸入在 PHP 中建立安全 MySQL 準備語句的綜合指南。
建立準備語句
實例化MySQLi 連線並使用mysqli_prepare 準備語句( ):
$db = new mysqli("host","user","pw","database"); $stmt = $db->prepare("SELECT * FROM mytable where userid=? AND category=? ORDER BY id DESC");
使用mysqli_stmt_bind_param() 將輸入參數值綁定到語句佔位符:
執行與取得資料$userid = intval($_GET['userid']); $category = intval($_GET['category']); $stmt->bind_param('ii', $userid, $category);
執行準備好的語句並使用 myexecsql)檢索結果和mysqli_stmt_store_result():
使用 mysqli_stmt_bind_result()將列名綁定到變數並迭代結果:
$stmt->execute(); $stmt->store_result();增強關聯的靈活性數組
$stmt->bind_result($column1, $column2, $column3); while ($stmt->fetch()) { echo "col1=$column1, col2=$column2, col3=$column3 \n"; }
對於傳回多列的查詢(例如SELECT *),您可以使用stmt_bind_assoc() 函數將結果綁定到關聯數組:
效能增強$resultrow = array(); stmt_bind_assoc($stmt, $resultrow); while ($stmt->fetch()) { print_r($resultrow); }
使用準備好的語句時可以提高相同查詢多次執行的效能,但建立和準備語句的開銷可能不足以僅在三到四次執行中使用它們。
執行以下步驟,您可以確保您的 MySQL 查詢安全且有效率。以上是如何使用 URL 參數在 PHP 中安全地建立 MySQL 準備語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!