-2

可能重复:
警告:mysql_fetch_* 期望参数 1 是资源,布尔给定错误

我收到错误“mysql_fetch_array() 期望参数 1 是资源,在第 3 行的 C:\wamp\www\inc\prod_list.php 中给出的布尔值”

这是我的代码:

<?php
$mysql = mysql_query("SELECT * FROM products ORDER BY id DESC;");
while($row = mysql_fetch_array($mysql)){ //line 3 here
    $id=$row["id"];
    $name=$row["name"];
    $dicription=$row["dicriprion"];
    $price=$row["price"];
    $img_alt=$row["img_alt"];
    $thumb_alt=$row["img_alt"];
    echo 'Data:<br/>
    '. $name.'<br/>
    '. $dicription.'<br/>
    '. $price=$row. '<br/>
    '. $img_alt=$row. '<br/>
    '. $thumb_alt=$row. '<br/>';
}
?>

我基于旧站点的代码,除了 $row = mysql_fetch_array($data)

4

3 回答 3

0

文档中:

mysql_query成功或FALSE错误时返回资源。

您所看到的事实mysql_fetch_array() expects parameter 1 to be resource, boolean given表明对mysql_query上述的调用已返回FALSE

也来自相同的文档:

查询字符串不应以分号结尾

...所以尝试从查询末尾删除分号。如果不是这样,请尝试添加对mysql_error的调用以检查发生了什么错误。

于 2012-05-09T14:26:31.197 回答
0

此问题的最可能原因是mysql_query返回 false。确保指定的查询有效(检查连接是否有效,选择了正确的数据库等)并检查输出mysql_eror以查看发生了什么错误。

于 2012-05-09T14:28:07.887 回答
0

您可以添加一个die替代方案:

$mysql = mysql_query("SELECT * FROM products ORDER BY id DESC;") 
    or die("error: " . mysql_error());

此外,我发现更好的做法是指定您在查询中选择的所有字段,这样您就不会因为意外的字段名称“大小写”而导致错误:

$mysql = mysql_query("SELECT id,name,dicriprion,price,img_alt FROM products ORDER BY id DESC;") 
    or die("error: " . mysql_error());
于 2012-05-09T14:33:54.883 回答