ホームページ  >  記事  >  データベース  >  MySQL コードを PDO ステートメントに変換するにはどうすればよいですか?

MySQL コードを PDO ステートメントに変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-06 20:51:02805ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。