2016-10-10 16 views
-1

私はregister.phpを作成しています。 「ユーザー名と電子メールチェックインのデータベース」を作成し、何とか私はいつもエラーが発生します。これを解決するのを手伝ってください。おかげ警告:mysqli_num_rows()は、パラメータ1がmysqli_resultになることを期待しています.12行目のC: xampp htdocs medcares index.phpに指定されています。

<?php 
    require_once('pages/connect.php'); 
    if (isset($_POST['username']) && isset($_POST['password'])){ 
    $username = mysqli_real_escape_string($connection, $_POST['username']); 
    $email = mysqli_real_escape_string($connection, $_POST['email']); 
    $password = md5($_POST['password']); 
    $repassword = md5($_POST['repassword']); 
    if ($password == $repassword) { 
     $fmsg = ""; 
     $usernamesql = "SELECT * FROM 'users' WHERE username='$username'"; 
     $usernameres = mysqli_query($connection,$usernamesql); 
     $count = mysqli_num_rows($usernameres); 
     if($count == 1){ 
      $fmsg .= "Username Already Exist!"; 
     } 

     $query = "INSERT INTO 'users' (username, password, email) VALUES ('$username', '$password', '$email')"; 
     $result = mysqli_query($connection, $query); 
     if($result){ 
      $smsg = "User Created Successfully."; 
     }else{ 
      $fmsg .= "Failed to Register User"; 
     } 
    } else { 
     $fmsg = "Password Do not Match"; 
    } 
} 
?> 

は、私はすでに何回も

$usernamesql = "SELECT * FROM 'users' WHERE username='$username'"; 

をチェックし、私はまだエラーメッセージが表示されます。私を助けてください。ご協力ありがとうございました。

答えて

0

この問題は、必ず失敗したSQL文が原因で発生し、結果として偽の戻り値が返されます。これは、たとえば、行セットとして使用しようとしていないことを確認するためにチェックする必要があります。 (それはこの場合には必要はありませんが、バッククォートまたは同等の)この特定例で

、あなたはむしろ'users'よりusersを使用する必要があります。前者はデータベースオブジェクト、後者は文字列リテラルです。言い換えれば

、の1:クエリ内の引用符が間違っている

$usernamesql = "SELECT * FROM users WHERE username='$username'"; 
$usernamesql = "SELECT * FROM `users` WHERE username='$username'"; 
+0

私はすでにそれを行っていますが、私はまだ "Username already Exist!"というメッセージを受け取りません。私はエラーメッセージ「ユーザー登録に失敗しました」 – Kirito

+0

@Kirito、それはまったく別の問題です。問題のタイトルに記載されたエラーとは関係ありません。新しい質問をすることをお勧めします(最初にユーザーがDBに存在していないことを最初に確認した後)。 – paxdiablo

0

。 'ユーザー' の周り

$usernamesql = "SELECT * FROM 'users' WHERE username='$username'"; 

引用符が`スタイルの引用符でなければなりません。これは、右のあなたがmysqli_queryを行うラインの下に行くべき

if (!$usernameres) { 
    die(mysqli_error()); 
} 

また、あなたのような何かを追加する必要があります。これにより、実際のエラーメッセージが表示されます。

関連する問題

 関連する問題