2011-06-26 42 views
0

Possible Duplicate:
mysql_num_rows(): supplied argument is not a valid MySQL result resourcePHP錯誤:mysql_num_rows():提供的參數不是一個有效的MySQL

比方說,我有一個名爲getbyUsername類文件稱爲用戶內部功能:

public static function getbyUsername($username) { 
    $user = new User(); 
    $query = sprintf('SELECT CLIENT_ID, EMAIL, PASSWORD' . 'FROM %sClients WHERE USERNAME = "%s"', DB_TBL_PREFIX, mysql_real_escape_string($username, $GLOBALS['DB'])); 
    $result = mysql_query($query, $GLOBALS['DB']); 
    if(mysql_num_rows($result)) { 
     $row = mysql_fetch_assoc($result); 
     $user->client_id = $row['CLIENT_ID']; 
     $user->username = $username; 
     $user->password = $row['PASSWORD']; 
    } 
    mysql_free_result($result); 
    return $user; 
} 

和我要去檢查是否有用戶通過使用該功能

$user = User::getbyUsername($_POST['username']); 
    if($user->userid) { 
     echo 'User Exist!'; 
    } else { 
     echo 'User does not exist'; 
    } 

我碰到PHP錯誤,我不知道爲什麼存在:

mysql_num_rows(): supplied argument is not a valid MySQL result resource in...

mysql_free_result(): supplied argument is not a valid MySQL result resource in....

有人可以幫我嗎?

回答

2

您的查詢似乎失敗,因此mysql_query返回錯誤這不是有效的MySQL結果資源。好像有外地表達PASSWORDFROM關鍵字之間缺少一個空格:

'SELECT CLIENT_ID, EMAIL, PASSWORD FROM %sClients WHERE USERNAME = "%s"' 
1

查詢您正在執行錯誤並mysql_query回報false。這就是爲什麼PHP抱怨它的返回值不是MySQL的結果。

一個問題,我可以看到的是,你缺少一個空格:

'SELECT CLIENT_ID, EMAIL, PASSWORD' . 'FROM 

            ^
Missing space here -----------------/ 
0

,如果你仍然得到同樣的錯誤,那麼問題是在表前綴。如果您使用cPanel,表前綴與用戶名相同。你可以通過使用一個空的表前綴define('DB_TBL_PREFIX','')來解決這個問題。

相關問題