如何使用PDO 進行SQL 轉換
簡介
PDO(PHP 資料)提供了一個統一的API,用於在PHP 中與資料庫進行互動。它提供了一種結構化且一致的方法來編寫和執行 SQL 查詢。本文示範如何將提供的 PHP 程式碼中的第一個 if 語句從使用 mysqli 轉換為使用 PDO 進行資料庫存取。
更新程式碼
要在中使用PDO if 語句,先定義資料庫連線參數:
$db_host = "127.0.0.1"; $db_name = "name_of_database"; $db_user = "user_name"; $db_pass = "user_password"; // Create a connection to the MySQL database $pdo = new PDO( "mysql:host={$db_host};dbname={$db_name}", $db_user, $db_pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => FALSE ] );
接下來,更新if 語句以使用PDO 準備好的語句:
if ($id) { $sql = "SELECT email FROM users WHERE u_id = ?"; $query = $pdo->prepare($sql); // Prepare the query $query->execute([$id]); // Bind the parameter and execute the query $email = $query->fetchColumn(); // Return the value from the database }
fetchColumn() 方法擷取單一結果集中的欄位。
其他注意事項
完成更新的程式碼
$id = $_SESSION['u_id'] ?? NULL; if ($id) { $sql = "SELECT email FROM users WHERE u_id = ?"; $query = $pdo->prepare($sql); $query->execute([$id]); $email = $query->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 (?, ?, ?, ?)"; $query = $pdo->prepare($sql); $query->execute([$id, $email, $optionOne, $optionTwo]); } else { echo "All options must be entered"; }
透過將程式碼轉換為使用PDO,您可以增強其安全性並提高其效能跨不同資料庫系統的可移植性。
以上是如何在 PHP 中將 MySQLi 語句轉換為 PDO?的詳細內容。更多資訊請關注PHP中文網其他相關文章!