可能重复:
PHP: Warning: sort() expects parameter 1 to be array, resource given
我收到此错误:
警告:mysql_fetch_array()期望 参数1是资源,布尔值 在
中给出
$sql = dbquery("SELECT * FROM `channels` WHERE `cat_slug` = ".$cat." ");
while($row = mysql_fetch_array($sql)){
$category = $row["cat_name"];
$slug = $row["cat_slug"];
// other
}
和$ cat可以是“搞笑”
如何更改代码才能完成?
答案 0 :(得分:1)
您正在使用PEAR,因此您需要先设置对象:
$db =& DB::connect('mysql://usr:pw@localhost/dbname');
if (PEAR::isError($db)) {
die($db->getMessage());
}
然后创建一个资源:
$res =& $db->query("SELECT * FROM `channels` WHERE `cat_slug` = '$cat'");
然后,如果fetchmod设置为ordered,则可以获取数组:
while ($res->fetchInto($row)) {
echo $row[0] . "\n";
}
看起来你正在使用标准PHP和PEAR的混合物。
在标准PHP中,您需要这样做:
$sql = "SELECT * FROM channels WHERE cat_slug = '$cat'";
$res = mysql_query($sql, $conn) //where $conn is your db link stuff
然后你可以做一个获取数组
答案 1 :(得分:0)
您在查询中遇到语法错误,和/或数据库出现其他问题。在dbquery函数中,您需要具有以下内容:
$result = mysql_query($sql) or (die(mysql_error());
将中止脚本并输出查询失败的原因。
但是,根据您的查询字符串以及您的数据,错误是由于查询中$cat
周围缺少引号:
SELECT ... WHERE `cat_slug`=funny;
除非您的表中有一个名为“funny”的字段,否则这是一个语法错误。你需要:
SELECT ... WHERE `cat_slug`='funny';
(注意引号)。