Mysql Fetch Assoc()错误

时间:2011-11-15 10:19:36

标签: php

  

可能重复:
  PHP Error: mysql_fetch_array() expects parameter 1 to be resource, boolean given

我是PHP的新手,需要一些关于以下代码的建议。我收到以下错误:

  

警告:mysql_fetch_assoc()要求参数1为资源,第42行的C:\ xampp \ htdocs \ wd \ categories.php中给出布尔值

PHP代码:

$SQL= "FROM  wdccat WHERE caid='$id' 
LEFT JOIN wdcat ON wdccat.caid = wdcat.ccid
LEFT JOIN wdclient ON wdccat.clid = wdclient.cid";
$result = mysql_query($SQL);

((Line 42)) while ($db_field = mysql_fetch_assoc($result)) {

echo $str1;
echo $str2;
print $row['cid'];
echo $str3;
print $row['cid'];
echo $str4;
print $row['climage'];
echo $str5;
print $row['cname'];
echo $str6;
print $row['cid'];
echo $str7;
print $row['cname'];
echo $str8;
print $row['cid'];
echo $str9;
echo $str10;

}

任何帮助将不胜感激。

我用echo mysql_error();:

得到的错误

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'LEFT JOIN wdcat on wdccat.caid = wdcat.ccid LEFT JOIN wdclient on wdccat.cl'第2行附近使用正确的语法 警告:mysql_fetch_assoc()期望参数1是资源,第42行的C:\ xampp \ htdocs \ wd \ categories.php中给出布尔值

3 个答案:

答案 0 :(得分:2)

您应该检查mysql_query()的错误结果(返回false),例如

$result = mysql_query($SQL);
if (false === $result) {
    throw new Exception('Error in SQL query, you have: ' . mysql_error());
}

在您的情况下,查询格式不正确;您错过了SELECT clause

进一步的建议;尽快切换到PDO库并开始使用parameterised statementsbound parameters。进一步阅读 - http://forums.whirlpool.net.au/forum-replies.cfm?t=1234522

答案 1 :(得分:0)

尝试抛出echo mysql_error(),因为您的查询有问题。

可能是因为您遗漏了SELECT *

答案 2 :(得分:0)

您的$ SQL不完整。它没有返回的字段。尝试:

$SQL= "SELECT wdclient.cid, climage, wdclient.cname FROM  wdccat WHERE caid='$id' 
LEFT JOIN wdcat ON wdccat.caid = wdcat.ccid
LEFT JOIN wdclient ON wdccat.clid = wdclient.cid";

这假设cid, climage, cname来自同一个表。

相关问题