2012-11-21 147 views
0

可能重複:
Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given error如何避免警告味精

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/content/97/9548797/html/backuptestmp/index.php on line 344 

語法:

$table3right = mysql_query("SELECT username FROM users where parent_id=$GDs[4]"); 

$table3right3 = mysql_fetch_row($table3right); 

while($row = mysql_fetch_row($table3right)){ $VDs[] = $row[0]; } 

$table3r1 = $table3right3[0]; 

如何避免警告味精。

+0

您的查詢不正確。所以你在$ table3right中沒有mysql_result。 – Stony

+0

你有錯誤的查詢,所以無論查詢是否有效,它都返回0(布爾類型)到'$ table3right' – vlcekmi3

+0

。問題是 - 如何捕捉錯誤。 – StasGrin

回答

-2

爲了避免警告信息使用

error_reporting(0); 
+3

從技術上講,你是正確的,因爲它會隱藏所有的錯誤信息。它不會解決潛在的問題,但... –

+0

$ table3right3 = mysql_fetch_row($ table3right); while($ row = mysql_fetch_row($ table3right)){$ VDs [] = $ row [0]; } $ table3r1 = $ table3right3 [0]; error_reporting(0);是否正確使用此代碼的方式 – bajis

+2

不,請不要!鴕鳥綜合症再次襲來!接受的答案是最糟糕的答案 - 隱藏問題並假裝它不存在而不是修復它。 –

0

只要添加if語句來檢查SQL何時返回並且沒有錯誤結束。

$table3right = mysql_query("SELECT username FROM users where parent_id=$GDs[4]"); 
if ($table3right && mysql_num_rows($table3right)) { 
    $table3right3 = mysql_fetch_row($table3right); 
    while($row = mysql_fetch_row($table3right)){ $VDs[] = $row[0]; } 
    $table3r1 = $table3right3[0]; 
} else { 
//... 
} 

注意1:mysql_*功能棄用。請使用PDOmysqli_*

注意2:你做了mysql_fetch_row()之前ü開始while()循環。似乎你需要刪除這一行。

0

你不能([4] $ GDS)內 「」 這樣的報價使用數組。

$table3right = mysql_query("SELECT username FROM users where parent_id='" . $GDs[4] . "'"); 

$table3right3 = mysql_fetch_row($table3right); 

while($row = mysql_fetch_row($table3right)){ $VDs[] = $row[0]; } 

$table3r1 = $table3right3[0];