1

私は pdo 初心者で、いくつかの php/pdo コードを準備して実行する必要があります: このコードは、データベースにユーザーを作成できるように機能します:

    // Perform Insert / Update
$STH = $dbh->prepare("INSERT INTO users (username, email) values (:username, :email)");
$STH->bindParam(':username', $username);
$STH->bindParam(':email', $email);
    try{
    $STH->execute();
    redirect_to(signupsuccess.php);
    }
catch(PDOException $e) {  
echo "I'm sorry, Dave. I'm afraid I can't do that.";  
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND); 
}
    }

しかし、そのデータをデータベースに入れる前に、電子メールがデータベースにまだ存在していないことを確認する必要があります。次のような SELECT を実行する必要があります。

    $STH = $dbh->prepare("SELECT FROM users (email) values (:email)");
$STH->bindParam(':email', $email);
try{
    $STH->execute();
      }

そして、私は追加する必要があることを知っています

    "WHERE something matches '$_POST'email') something.." ...

私はこの時点で完全に迷っています.PDOなしでこれを行うことができますが、PDOの準備されたステートメントの使用を開始したい..助けてください!

4

1 に答える 1

0

単純な選択を行うだけです。メールがnullになる可能性がある場合は、バインド値を使用することをお勧めします。

$STH = $dbh->prepare("SELECT email FROM users WHERE email = :email");
$STH->bindValue(':email', $email);
try{
    $STH->execute();
}

次に、レコードが返されるかどうかを確認します。もしそうなら、更新し、挿入しないでください。幸運を。

于 2012-05-09T13:25:30.950 に答える