2011-05-06 111 views
0

那麼,我的註冊工作,除了檢測用戶是否已經創建的代碼沒有的事實。PHP OOP MySQL註冊系統MySQL_NUM_Row錯誤

public function register($username, $password) { 
    global $core, $db; 

    $username = $core->encrypt($username); 
    $password = $core->encrypt($password); 

    $qry = $db->query("SELECT * 
         FROM `users` 
         WHERE `username` = '$username' 
         AND `password` = '$password'"); 
    $num = $db->num($qry); 

    if($num >= 1) { 
    echo 'This username has already been registered'; 
    } else { 
    $db->query("INSERT INTO `users` 
        (username, password) 
       VALUES 
        ('{$username}', '{$password}');"); 
    } 
} 

這是我使用的代碼,我認爲這是查詢的某種形式的錯誤,但我不知道是什麼 - 可能是一個小錯誤。

MySQL的錯誤:

>Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\xampp\htdocs\housekeeping\_inc\db.inc.php on line 14 

>$db->num code 
     public function num($query) { 
      mysql_num_rows($query); << line 14 
     } 
+0

你確定$ DB->查詢返回的結果(而不是也許是真/假)。 – 2011-05-06 20:16:13

+0

只是在函數裏面,全局變量之後,試試:「print_r($ db);」並看看你得到了什麼 – khany 2011-05-06 20:24:09

回答

2

你在你的NUM功能和您的QRY功能忘了回報聲明。它應該是:

public function num($query) { 
    return mysql_num_rows($query); 
} 

您沒有爲您的QRY功能提供的代碼,但它應該是這樣的:

public function qry($sql) { 
    return mysql_query($sql); 
}