php中mysqli的預(yù)處理語句

PHP
小樊
82
2024-09-26 22:11:29
欄目: 云計(jì)算

在 PHP 中,使用 MySQLi 的預(yù)處理語句可以提高性能并防止 SQL 注入攻擊。預(yù)處理語句將參數(shù)與 SQL 查詢分開,使得在執(zhí)行查詢時(shí),參數(shù)值會(huì)自動(dòng)轉(zhuǎn)義,從而避免了 SQL 注入的風(fēng)險(xiǎn)。

以下是使用 MySQLi 預(yù)處理語句的示例:

<?php
// 創(chuàng)建數(shù)據(jù)庫(kù)連接
$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);
}

// 預(yù)處理 SQL 查詢
$stmt = $conn->prepare("INSERT INTO users (username, email) VALUES (?, ?)");

// 綁定參數(shù)
$stmt->bind_param("ss", $username, $email);

// 設(shè)置參數(shù)值
$username = "JohnDoe";
$email = "john.doe@example.com";

// 執(zhí)行預(yù)處理語句
if ($stmt->
execute()) {
    echo "新記錄插入成功";
} else {
    echo "Error: " . $stmt->error;
}

// 關(guān)閉預(yù)處理語句和數(shù)據(jù)庫(kù)連接
$stmt->close();
$conn->close();
?>

在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)到 MySQL 數(shù)據(jù)庫(kù)的連接。然后,我們使用 prepare() 方法創(chuàng)建一個(gè)預(yù)處理語句,該語句將插入一條新的用戶記錄。接下來,我們使用 bind_param() 方法將參數(shù)與 SQL 查詢中的占位符綁定。最后,我們?cè)O(shè)置參數(shù)值并執(zhí)行預(yù)處理語句。

注意:在這個(gè)示例中,我們使用了兩個(gè)占位符 “ss”,分別表示兩個(gè)參數(shù)都是字符串類型。根據(jù)你的需求,你可以使用其他類型的占位符,例如 “is”(整數(shù))、“d”(浮點(diǎn)數(shù))等。

0