";警告:mysql_fetch_array()要求参数1为资源,给定布尔值";尝试创建php购物车时出


"Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given" error while trying to create a php shopping cart

可能重复:
PHP错误:mysql_fetch_array()要求参数1为资源,给定为布尔值

这是我在product.php中的代码,每次我从主页点击产品时,都会出现以下警告:

if ( isset( $_GET['ID'] ) ) {
    $product_id = $_GET['ID'];
    $query = "SELECT Name, Genre, Price, Year, Picture FROM Products";
    $result = mysql_query( $query );
    while ( $row = mysql_fetch_array( $result, MYSQL_NUM ) ) {
        echo "<div><p>Name: $row[0]</p><p>Genre: $row[1]</p><p>Price: $row[2]</p><p>Year: $row[3]</p></div>";
    }
    echo "<div><a href='"cart.php?action=add&product=$product_id'">add to basket</a></div>";
}

我得到警告:

警告:mysql_fetch_array()要求参数1为resource,在第12行的/Applications/XAMPP/examplepfiles/htdocs/cart/product.php中给定布尔值

Year是一个mysql保留字,您必须使用backtick``对其进行转义

$query = "SELECT Name, Genre, Price, `Year`, Picture FROM Products";

您必须使用某种mysql错误检查,如下面的

$result = mysql_query($query) or trigger_error(mysql_error());

@Click已经指出了您的错误。

不过,更普遍的情况是,您不会在查询中进行任何错误检查,所以当查询失败时,您不会得到任何有用的信息也就不足为奇了。mysql_query()手册或本参考问题中概述了如何做到这一点。

示例:

$result = mysql_query($query);
if (!$result)
 { trigger_error("SQL error:".mysql_error());
   die();
 }