0
    $username = $_POST['username'];
    $password = $_POST['password'];
    $passworda = $_POST['passworda'];
    $email = $_POST['email'];

    if ($password == $passworda){
        echo 'this is the user name to be chacked:' .$username .'<br>';
        $query = "SELECT username FROM mishta where username=$username";
        $queryrun = mysql_query($query);
        echo $queryrun .'<br>';
        echo mysql_num_rows($queryrun) .'<br>';

        if (mysql_num_rows($queryrun)!=1){
            mysql_query("INSERT INTO mishta(id, username, password, email) VALUES ('', '$username','$password','$email')");
        }   
        else{
            echo 'user already exist';
        }

こんにちは、

簡単な登録フォームを作成しようとしています.htmlフォームからユーザー名を取得しています.データベースにまだ存在しないことを確認したい. 問題は、ユーザー名を数字(1、2、3 ...)として実行するたびに、スムーズに実行されることです。

しかし、Bob や Dora など、文字で何かを書こうとすると、次のエラーが発生します。

警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定しています。

それでも、情報はまだデータベースに保存されています。つまり、最後の if ステートメントで false になり、引き続き false になります (再試行すると、重複が挿入されます)。

どんな助けでも大歓迎です。

4

1 に答える 1

0

ユーザー名の周りの引用符を忘れました:

$query = "SELECT username FROM mishta where username='$username'"

文字列の区切り文字として引用符が使用されます。数値は文字列ではなく、数値を使用すると機能します。

于 2013-03-28T18:10:11.110 に答える