首页  >  文章  >  数据库  >  如何将 MySQL 代码转换为 PDO 准备语句:分步指南

如何将 MySQL 代码转换为 PDO 准备语句:分步指南

Barbara Streisand
Barbara Streisand原创
2024-11-06 01:12:02319浏览

How to Convert MySQL Code to a PDO Prepared Statement: A Step-by-Step Guide

将 MySQL 代码转换为 PDO 语句:分步指南

理解问题

您希望用 PDO 语句替换第一个 if 语句,以使用用户 ID 从数据库检索用户的电子邮件。

与 PDO 连接

利用PDO,首先必须建立与 MySQL 数据库的连接:

$db_host = "127.0.0.1";
$db_user = "root";
$db_pass = "";
$db_database = "my_database";

$pdo = new PDO("mysql:host=$db_host;dbname=$db_database", $db_user, $db_pass, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_EMULATE_PREPARES => false
]);

更新代码

准备语句

准备好的语句提供了更高的安全性和可读性,特别是在处理用户输入时。

$sql = "SELECT email FROM users WHERE u_id = ?";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $id, PDO::PARAM_INT);
$stmt->execute();
$email = $stmt->fetchColumn();

更新的代码

使用 PDO 和准备好的语句更新的代码:

$id = $_SESSION['u_id'] ?? NULL;

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(1, $id, PDO::PARAM_INT);
    $stmt->execute();
    $email = $stmt->fetchColumn();
}

$email = $email ?? "";  // To avoid PHP notices
$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->bindParam(1, $id, PDO::PARAM_INT);
    $stmt->bindParam(2, $email, PDO::PARAM_STR);
    $stmt->bindParam(3, $optionOne, PDO::PARAM_STR);
    $stmt->bindParam(4, $optionTwo, PDO::PARAM_STR);
    $stmt->execute();
} else {
    echo "All options must be entered";
}

以上是如何将 MySQL 代码转换为 PDO 准备语句:分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn