2010-10-13 82 views
2

地獄有 當我嘗試連接到拉東西了數據庫,會出現以下錯誤:警告:mysql_fetch_object():提供的參數不是一個有效的MySQL結果資源

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/content/49/5548763/html/matt/download.php on line 17 

其他的無在這個網站上的答案工作。

這裏是腳本:

<?php 

$con = mysql_connect("XXXX", "name", "password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

$db_selected = mysql_select_db("nameofdb",$con); 

$musictable = ""; 

$sql = "GET * FROM matt"; 

$result = mysql_query($sql,$con); 

while($row = mysql_fetch_object($result)) { 

$id = $row->id; 

$name = $row->name; 

$update = $row->update; 

$length = $row->length; 

$size = $row->size; 

$musictable .= " 
    <tr> 
    <td width=\"63%\">".$name."</td> 
    <td width=\"10%\">".$length."/".$size."</td> 
    <td width=\"10%\"><a href=\"download.php?mp3=".$name."\">DOWLOAD</a></td> 
    <td width=\"17%\">|||||</td> 
    </tr> 
    "; 
} 

?> 
+0

在while循環之前添加此代碼:var_dump($ result);併發布在這裏 – thomaux 2010-10-13 11:29:29

+0

可能重複的[mysql_fetch_assoc():提供的參數不是在PHP有效的MySQL結果資源](http://stackoverflow.com/questions/1858304/mysql-fetch-assoc-supplied-argument-is- not-a-valid-mysql-result-resource-in-ph) – 2011-09-16 17:50:18

+0

[Warning:mysql_fetch_ *期望參數1是資源,布爾給定錯誤](http://stackoverflow.com/questions/11674312/warning -mysql-fetch-expects-parameter-1-to-resource-boolean-given-error) – 2012-07-31 02:18:09

回答

9

那是因爲你的查詢是錯誤的。

$sql = "GET * FROM matt"; 

可能必須成爲

$sql = "SELECT * FROM matt"; 

的基本措施得到警告,這是

if (!$result) 
die("mySQL error: ". mysql_error()); 

發出查詢之後。

+2

Pekka +1:當你有SQL語法錯誤時,通常會發生此錯誤。 – 2010-10-13 11:31:09

+2

哇,我覺得有史以來最大的啞巴。我猜是因爲我在早些時候使用$ _GET工作,我堅持不能相信我犯了這個錯誤,甚至沒有抓住它。非常感謝。 – DonJuma 2010-10-13 11:32:05

0

也許嘗試使用'SELECT'而不是'GET'?

0
$sql = "GET * FROM matt"; 

是錯誤的。正確的SQL語法是

$sql = "SELECT * FROM matt"; 

該錯誤被傳遞到

$result = mysql_query($sql,$con);

,然後是無效的,不能在while($row = mysql_fetch_object($result))使用。

你應該在mysql_query()之後檢查mysql_error()來捕捉這些。

0

想用SELECT *

您還可以使用

mysql_query($sql, $con) or die("Error in $sql:" . mysql_error($con)); 

如果你不想使用模具(),那麼你可以使用echo,看看有什麼錯誤是,幫助調試至少應用。

相關問題