MySQL コードを PDO ステートメントに変換する: ステップバイステップ ガイド
問題を理解する
最初の if ステートメントを PDO ステートメントに置き換えて、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 中国語 Web サイトの他の関連記事を参照してください。