可能重复:
PHP错误:mysql_fetch_array((要求参数1为资源,给定为布尔值
我是PHP新手,需要一些关于以下代码的建议。我得到以下错误:
警告:mysql_fetch_assoc((要求参数1为resource,在第42行的C:''examplep''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语法有错误;在第2行的'LEFT JOIN wdcat ON wdccat.caid=wdcat.ccid LEFT JOING wdclient ON wdccat.cl'附近,查看与MySQL服务器版本相对应的手册,以获得要使用的正确语法警告:mysql_fetch_assoc((要求参数1为resource,布尔值在第42行的C:''examplep''htdocs''wd''categories.php 中给定
您应该检查mysql_query()
的结果是否有错误(返回false
(,例如
$result = mysql_query($SQL);
if (false === $result) {
throw new Exception('Error in SQL query, you have: ' . mysql_error());
}
在您的情况下,查询格式不正确;您缺少SELECT
子句。
一些进一步的建议;尽快切换到PDO库,并开始使用带有绑定参数的参数化语句。进一步阅读这里-http://forums.whirlpool.net.au/forum-replies.cfm?t=1234522
由于查询有问题,请尝试删除echo mysql_error()
。
可能是因为您缺少SELECT *
您的$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
来自同一个表。