2011-06-21 119 views
1

這是我的代碼mysql_result無效資源

function code_exists($code){ 
    $code = mysql_real_escape_string($code); 
    $code_exists = mysql_query("SELECT COUNT('url_id') FROM 'links' WHERE 'code'='$code'"); 
    return (mysql_result($code_exists, 0) == 1) ? true : false; 
} 

它應該檢查數據庫,以確保$代碼是與否 ,但它不斷給我同樣的錯誤

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 
/home/codyl/public_html/projects/tests/url/func.inc.php on line 16 

回答

1

由於被沙克蒂說,你在你的SQL

$code_exists = mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'"); 

有一個錯誤你需要圍繞字段名蜱(`)不是單引號。如果查詢按預期方式運行,則還應該添加一條語句。

$code_exists = mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'") or die('Error in my query: '. mysql_error()); 

這會殺死你的程序拋出mysql錯誤。

+0

謝謝你,蜱似乎一直是問題:) – Cody

5

你在mysql查詢語法錯誤嘗試這個。

他們不是單引號他們是反引號`

mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'"); 

我建議你應該總是處理MySQL的錯誤。

你可以重寫這樣

mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'") 
         OR 
       trigger_error(mysql_error()); 
1

您沒有趕上從MySQL來當查詢失敗的錯誤。使用mysql_error()輸出它們,例如像這樣:

$code_exists = mysql_query(....); 
if (!$code_exists) 
trigger_error("MySQL error: ".mysql_error(), E_USER_ERROR); 

(使用trigger_error()是這樣,當你的網站開始運行,和錯誤報告被關閉,MySQL的錯誤是對用戶不可見的。)

在這種特定的情況下,使用單引號因爲表名無效,所以會出現mySQL語法錯誤。

你需要使用反引號`或者根本不引用。