如何將 MySQL 程式碼轉換為 PDO 語句?

Mary-Kate Olsen
發布: 2024-11-06 20:51:02
原創
872 人瀏覽過

How do I convert MySQL code to PDO statements?

如何將 MySQL 程式碼轉換為 PDO 語句?

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板