需要有关mysql错误的帮助

时间:2011-10-03 22:03:06

标签: php mysql

希望有人可以帮我解决问题。它似乎是一个语法问题,但我无法确定究竟问题是什么...我正在使用最新版本的mysql

我收到此错误:

“警告:mysql_fetch_assoc()期望参数1是资源,布尔值在C:... \ testing_album_func.php中给出第14行”

这是我的代码:

function get_listings() { 

    $listings = array();

    $listings_query = mysql_query("SELECT `class_ads`.`ad_id`, `class_ads`.`created_on`, 
                LEFT(`class_ads`.`title`, 50) as `title`, LEFT(`class_ads`.`description`, 50) as  
                `description`, `class_ads`.`price`, `class_ads`.`quantity`,   
                COUNT(`images`.`image_id`) as `image_count` FROM `class_ads` LEFT JOIN `images` ON 
                `class_ads`.`ad_id`=`images`.`ad_id` WHERE `user_id`='".$_SESSION['user_id']."' GROUP
                 BY `class_ads`.`ad_id`");


    while ($listings_row= mysql_fetch_assoc($listings_query)) {

        $listings[] = array(
        'ad_id' => $listings_row['ad_id'],
        'created_on' => $listings_row['created_on'],
        'title' => $listings_row['title'],
        'description' => $listings_row['description'],
        'price' => $listings_row['price'],
        'quantity' => $listings_row['quantity'],
        'image_count' => $listings_row['image_count']   
        );

    }

    return $listings;
}

3 个答案:

答案 0 :(得分:1)

如果出现错误,

mysql_query将返回false。

你应该检查一下:

if(!$listings_query) {
     die('An error occurred.  The message is: ' . mysql_error());
}

你的SQL语句看起来有点时髦,所以你也应该打印出实际的查询并确保它看起来很好。

答案 1 :(得分:1)

您应该为首发,向您的查询添加错误报告,以便确切知道出现了什么问题

$listing_query = mysql_query(".....") or die (mysql_error());

第二,您正在函数内部调用查询,可能是链接标识符未被传递,位于函数范围内。尝试在函数中连接并选择数据库,或者将链接资源作为参数传递给函数,或者将其作为全局函数(不要这样做)。

第三次,您可以尝试在phpmyadmin或命令行等工具中运行查询,这样您就可以立即看到查询是否失败以及原因;在将它们放入php脚本之前,我通常会使用复杂的查询来执行此操作。

同样,错误可能是WHERE user_id='".$_SESSION['user_id']."',但我不确定(你不需要告诉这个列所在的表吗?)。请参阅上面的三个评论,您将自己找到;)

答案 2 :(得分:1)

在数据库中执行查询时发生错误。您应该检查您尝试运行的SQL,可能是名称不正确的字段。要获取错误的更多详细信息,请使用mysql_error函数。

echo mysql_error($listings_query);