2013-03-17 67 views
-2

我遇到了一些麻煩與錯誤警告:mysql_fetch_assoc():提供的參數不是一個有效的MySQL

警告:mysql_fetch_assoc():提供的參數不是在 其實一個有效的MySQL結果資源,沒有全球變量我把所有的查詢都放在函數中。

我的查詢沒問題,沒有任何其他地方的字段名稱錯誤。

麻煩的是,當地的一切都很好的工作,當我把它放到網上,它不workd,到處都還給了我一些錯誤

的家,我有這樣的錯誤:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /web/teamfrancestron/www/lib_php/strongman.php on line 75 

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /web/teamfrancestron/www/lib_php/strongman.php on line 90 

我的用戶擁有所有權限的數據庫,

這裏是我使用的代碼: 這裏是第一個錯誤

function fetchAccueil() { 
    $sql = "SELECT 
        `content`, `date_maj`, `id_maj`, `titre` 
      FROM `stg_man_home` 
      WHERE 
        `id` = '1'"; 
    $result = mysql_query($sql); 
    return mysql_fetch_assoc($result); 
} 

還有對其他查詢

/** * 魁Fonction VA chercher L'identitéD'UNE personne。 * @參數類型的$ id * @返回類型 */

function fetchIdentity($id) { 
    $input_id = mysql_real_escape_string($id); 
    $query = "SELECT 
         `nom`, `prenom` 
       FROM `stg_man_users` 
       WHERE `id` = '{$input_id}'"; 
    $result = mysql_query($query); 
    return mysql_fetch_assoc($result); 
} 

我真的沒有看到名字的Fileds任何錯誤,我敢肯定,我的疑問是有效的ressources。 (適用於本地,但不適用於服務器)。在PHP 5.4

在其他網頁,IM我還是同樣的錯誤幫助

Anykind將非常感激。

+0

其實它是不一樣的錯誤錯誤,在其他主題如果是關於布爾給出 – 2013-03-17 22:20:23

+0

您的SQL查詢似乎沒問題。我猜別的東西出了問題,例如連接到數據庫等。試着'echo mysql_error()'看看MySQL實際上在抱怨什麼 – Hazzit 2013-03-17 22:20:53

+1

WHERE'id' ='1';在這裏你要求的是一個字符串,但不是一個整數,可能的原因。 – Jonast92 2013-03-17 22:21:40

回答

0

檢查返回值mysql_query。它可以是結果集,也可以是值false。將您的查詢更改爲

$result = mysql_query($sql) or die(mysql_error()); 

您將立即看到問題。

作爲旁註:考慮切換到mysqliPDO,因爲mysql_*函數現在已被棄用。

+0

好的謝謝。就是這樣。但我不明白,爲什麼在本地主機使用該語法工作? – 2013-03-17 22:24:44

+0

這基本上是我發表的評論:) – Jonast92 2013-03-17 22:25:04

+0

@StanislasPiotrowski我不知道。我剛剛在我的機器上進行了驗證,您說得對。使用'mysql'命令行工具,你可以使用''1'或'1',兩者都可以正常工作。 – 2013-03-17 22:30:02

-1

錯誤消息意味着運行您的查詢失敗。

測試查詢的最簡單方法是打開一個phpmyadmin或mysql控制檯(具有相同的用戶),然後運行此確切查詢。

+0

我的查詢沒問題,在本地工作,在phpmyadmin上工作 – 2013-03-17 22:23:07

+0

你確定我的評論不是可能的原因嗎? – Jonast92 2013-03-17 22:23:52

+1

該查詢是可以的,但'$ result'似乎不太好。 'mysql_query'應該返回一個資源(結果集或其他),但似乎你沒有這樣的資源(假而不是?)嘗試var_dump你的'$ result' – MatRt 2013-03-17 22:23:55

0

你說

WHERE id = '1' 

做到這一點,而不是(刪除單引號):

WHERE id = 1 

這樣就要求對整數的比賽,但不是一個字符串。

相關問題