1

値 (電子メール) をチェックして、データベースに既に存在するかどうかを判断しようとしています。これは、準備済みステートメントを使用して行う必要があります。これを行うための最良の方法は何ですか? 私の解決策はこれです(これは間違っています):

$mysqli = connectToDB();
$getEmail = $mysqli->prepare('SELECT * FROM users WHERE email=?') or die('Couldn\'t check the email');
$getEmail->bind_param('s', $email);
$getEmail->execute();
$countRows = $getEmail->num_rows;
print $countRows;

メールアドレスがデータベースに存在する場合でも、常に 0 が出力されます。

4

2 に答える 2

3

電話する必要があります$getEmail->store_result();

$mysqli = connectToDB();
$getEmail = $mysqli->prepare('SELECT * FROM users WHERE email=?');
$getEmail->bind_param('s', $email);
$getEmail->execute();
$getEmail->store_result();
$countRows = $getEmail->num_rows;
print $countRows;
于 2013-10-02T10:40:54.863 に答える
2

バッファリングされていない結果に関して問題があるようです。store_result を使用する必要があります。

$getEmail->execute();
$getEmail->store_result();
$countRows = $getEmail->num_rows;
于 2013-10-02T10:40:52.383 に答える