在 PHP 中使用資料庫時,經常需要將 MySQL 程式碼轉換為 PDO(PHP 資料物件)語句。 PDO 提供了一種與資料庫互動的一致且安全的方式,無論底層驅動程式如何。本指南將向您展示如何將 MySQL 程式碼轉換為 PDO 語句。
第一步是使用 PDO 與資料庫建立連線。以下是如何執行此操作的範例:
$db_host = "127.0.0.1"; $db_name = "database_name"; $db_user = "username"; $db_pass = "password"; $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
建立 PDO 連線後,您可以開始將 MySQL 程式碼轉換為 PDO 語句。
使用 mysqli 和 PDO 準備的語句
準備好的語句是執行包含使用者提供的資料的查詢的安全方法。它們透過在執行之前將資料綁定到查詢來防止 SQL 注入。
這是MySQLi 中準備好的語句的範例:
$sql = "SELECT * FROM users WHERE username = ? AND password = ?"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("ss", $username, $password); $stmt->execute(); $result = $stmt->get_result();
這是PDO 中的相同查詢:
$sql = "SELECT * FROM users WHERE username = ? AND password = ?"; $stmt = $pdo->prepare($sql); $stmt->bindParam(1, $username, PDO::PARAM_STR); $stmt->bindParam(2, $password, PDO::PARAM_STR); $stmt->execute(); $result = $stmt->fetchAll();
更新的程式碼
以下是如何將問題中的MySQL 程式碼轉換為PDO 語句的範例:
$id = $_SESSION['u_id'] ?? NULL; if ($id) { $sql = "SELECT email FROM users WHERE u_id = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$id]); $email = $stmt->fetchColumn(); } $email = $email ?? ""; $suggestions = selectAll($table); $optionOne = $_POST['optionOne'] ?? ""; $optionTwo = $_POST['optionTwo'] ?? ""; $newSuggestion = $_POST['new-suggestion'] ?? ""; if ($newSuggestion && $id && $email && $optionOne && $optionTwo) { $sql = "INSERT INTO suggestions (user_id, email, option_1, option_2) VALUES (?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$id, $email, $optionOne, $optionTwo]); } else { echo "All options must be entered"; }
將MySQL 程式碼轉換為PDO 語句是相對簡單的過程。透過遵循本指南中概述的步驟,您可以輕鬆地將程式碼遷移到 PDO 並利用其優勢,例如改進的安全性和效能。
以上是如何將 MySQL 程式碼轉換為 PDO 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!