2012-08-09 39 views
1

我試圖修復它,但我只是不能看到問題出在哪裏?請有人幫助我!謝謝你這麼多警告:mysql_result()期望參數1是資源,第26行xxx.php中給出的布爾值

function user_exists($email){ 
    $email = mysql_real_escape_string($email); 
    $query = mysql_query("SELECT COUNT('user_id') FROM 'users' WHERE 'email'='$email'"); 
    return (mysql_result($query, 0) == 1) ? true:false; //this is line 26 
} 

?> 
+2

它可能無法幫助回答您的問題,但您應該停止使用'mysql_ *'功能。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不確定使用哪一個,[閱讀這篇文章](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)。 – Matt 2012-08-09 18:17:59

+0

可能重複的[Warning:mysql_fetch_ *期望參數1是資源,布爾給定錯誤](http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter-1-to-be-resource -boolean-given-error) – DCoder 2012-08-09 18:19:18

+0

[mysql_fetch_array()的可能的重複期望參數1是資源,布爾給出在選擇](http://stackoverflow.com/questions/2973202/mysql-fetch-array-expects-parameter- 1-to-resource-boolean-given-in-select) – 2012-08-10 17:37:31

回答

4

嘗試刪除周圍的字段名和表名引號中查詢:

$query = mysql_query("SELECT COUNT(user_id) FROM users WHERE email='$email'"); 

這肯定始終確保您運行查詢後檢查返回值,並呼應如果出現問題,則退出數據庫錯誤消息。

+0

Andrewsi,謝謝你的回覆。 – 2012-08-10 01:53:14

3

首先,您不需要在return中使用三元運算符。

return (mysql_result($query, 0) == 1); 

做同樣的事情,而不需要將被處理額外的邏輯。

其次,您的查詢在字段名稱周圍使用'。這不是字段名稱的單引號,而是反碼(`)。

$query = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `email`='$email'"); 

請注意:應停止使用mysql_*功能。他們正在被棄用。請使用PDO(自PHP 5.1起支持)或mysqli(自PHP 4.1起支持)。如果您不確定要使用哪一個,請致電read this SO article

+0

嗨!馬特,非常感謝你的幫助,我從來沒有注意到反彈問題會導致這個問題,感謝你的幫助,現在沒問題,工作順利。非常感謝。 – 2012-08-10 01:54:52

1

mysql_query在出錯時返回false。如果檢測到錯誤,您應該始終檢查錯誤情況並採取措施。

function user_exists($email){ 
    $email = mysql_real_escape_string($email); 
    $sql = "SELECT COUNT('user_id') FROM 'users' WHERE 'email'='$email'"; 
    if(!($query = mysql_query($sql))) die(mysql_error()); 
    return (mysql_result($query, 0) == 1); 
} 
+0

嗨,Frank Farmer,你說得對,我用你的方式來檢查錯誤情況,現在我更清楚問題所在。謝謝你的幫助 :) – 2012-08-10 01:56:24

相關問題