2012-11-21 116 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];