2012-07-10 77 views
-1

可能重複:
PHP Error: mysql_fetch_array() expects parameter 1 to be resource, boolean givenmysql_fetch_assoc()預計參數1是資源,布爾在PHP中的錯誤給出

我得到了在PHP下述代碼以下錯誤:


警告:mysql_fetch_assoc()預計參數1是資源,在布爾/Users/pubs/Sites3/parse/includes/parseAuthorSearch.php給定線

警告:mysql_fetch_assoc()預計參數1是在/Users/pubs/Sites3/parse/includes/parseAuthorSearch.php給定的資源,布爾線

function findExactAuthorMatch($firstname, $lastname) 
{ 
    $query22 = "SELECT COUNT(*) FROM authors WHERE lastname='".$lastname."' AND firstname='".$firstname."'";  
    $result22 = mysql_query($query22); 
    $count22 = mysql_fetch_assoc($result22); 
    if($count22 == 0) return false; 
    else return true; 
} 
+1

[我不知道爲什麼人們還在回答這些問題](http://stackoverflow.com/searchq =%5Bphp%5D + Warning%3A + mysql_fetch_assoc%28%29 +期望+參數+ 1 +到+ be +資源%2C +布爾+給定+中) – 2012-07-10 20:30:02

+0

可能的SQL注入。 – kapa 2012-07-11 10:18:50

回答

1

您的查詢是錯誤的,請嘗試在PHPMyAdmin或其他程序中執行它,或嘗試回顯它並查看它是否一致。

1

它看起來像你的mysql_query調用返回false(布爾),然後你打電話mysql_fetch_assoc沒有檢查它是有效的。

試試這個:

$result22 = mysql_query($query22) or die('Invalid MySQL query: ' . mysql_error()); 

,將告訴你查詢不治。

0

這意味着您之前致電mysql_query()的電話號碼返回false,因此沒有取得結果。這發生在查詢出錯時,例如語法錯誤。

在這種情況下,你將要檢查是否$result22false,然後看看有什麼mysql_error()不得不說:

if ($result22 === false) { 
    echo mysql_error(); 
    return false; 
} 
1
  • 你不應該使用mysql_ *功能更多
  • 你永遠不應該直接將變量放入一個查詢;請參閱相應API可用的各種轉義函數。在這種情況下,使用mysql_real_escape_string
  • 要查看您的查詢的錯誤,這樣做:

    如果(!$ result22){ 模具(mysql_error()); }

相關問題