在 PHP 中,使用 MySQLi 的預處理語句可以提高性能并防止 SQL 注入攻擊。預處理語句將參數與 SQL 查詢分開,使得在執行查詢時,參數值會自動轉義,從而避免了 SQL 注入的風險。
以下是使用 MySQLi 預處理語句的示例:
<?php
// 創建數據庫連接
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 預處理 SQL 查詢
$stmt = $conn->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
// 綁定參數
$stmt->bind_param("ss", $username, $email);
// 設置參數值
$username = "JohnDoe";
$email = "john.doe@example.com";
// 執行預處理語句
if ($stmt->
execute()) {
echo "新記錄插入成功";
} else {
echo "Error: " . $stmt->error;
}
// 關閉預處理語句和數據庫連接
$stmt->close();
$conn->close();
?>
在這個示例中,我們首先創建了一個到 MySQL 數據庫的連接。然后,我們使用 prepare()
方法創建一個預處理語句,該語句將插入一條新的用戶記錄。接下來,我們使用 bind_param()
方法將參數與 SQL 查詢中的占位符綁定。最后,我們設置參數值并執行預處理語句。
注意:在這個示例中,我們使用了兩個占位符 “ss”,分別表示兩個參數都是字符串類型。根據你的需求,你可以使用其他類型的占位符,例如 “is”(整數)、“d”(浮點數)等。