私は自分のウェブサイト用のログインアカウントシステムを作成しようとしています。ユーザーが登録すると、データベースにアカウントがあるかどうかを確認します。私は「check_user_exists」と呼ばれる機能を作成し、ここにしかし、私はそれが私がデータベース内の値がすでに存在していることを知っても、偽のたびに返し、これを実行して行くときにSQLの準備文が正しい応答を与えないのはなぜですか?
function check_account_exists($username, $conn){
if($stmt = $conn->prepare("SELECT * FROM users WHERE username=?")){
$stmt->bind_param('s', $username);
$stmt->execute();
echo $stmt->num_rows;
if($stmt->num_rows == 1){
return true;
}else{
return false;
}
}else{
//couldn't prepare statement
return false;
}
}
ためのコードです。私はこれまでにMySQLのエラーはありませんでしたが、エラーログをチェックしてもエラーは表示されません。私はecho stmt->num_rows;
を追加しましたが、常に0を出力します。何が問題なのですか?
$ stmtの値がSQLの準備と等しい場合ではなく、$ stmtが正しく準備されているかどうかをテストしています。 – blendy
@ arif_suhail_123 phpの中で変数を宣言することができます – JapanGuy
@ arif_suhail_123それは混乱しますが、たくさん練習されています – JapanGuy