PHP / MySQL错误:警告:mysql_fetch_assoc()期望参数1是资源

时间:2013-07-08 02:12:10

标签: php mysql database

我已经阅读了其他问题。该错误已在发布之前发布。这是一个常见的错误。如何/为什么我得到错误是独一无二的。不重复。

我知道此错误消息已经发布过,但不是我的特定复杂情况。我最近使用xammp将一个站点放在我的本地服务器上。在我上传之前,一切都在我的本地机器上正常工作。上传到我的网络主机后,我遇到了至少8个新问题但是已经能够解决每个问题。其中3个在本网站的帮助下。我相信在修复此错误后我会完成它。

问题出在我的广告轮播系统上。这是一个非常简单的脚本/系统。页面上的4个独立位置有4个数据库,我有旋转的广告。这是我试图在现场进行的第二个。我已经有第一个没有错误的工作。这个错误在第5行

有什么想法吗?一如既往地感谢一帮!

完全错误:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/xxxxxx/public_html/includes/adverts/sidead1.php on line 5

以下代码的一部分:

<?php
    include '../includes/core/db/sidead1_dbinfo.php';

    $ads = mysql_query("SELECT `advert_id1`, `title1`, `desc1`, `image1` FROM `sidead1` WHERE UNIX_TIMESTAMP() < `expires1` AND `shown1`=0 ORDER BY `advert_id1` ASC LIMIT 1");
    while ($ads_row = mysql_fetch_assoc($ads)) {
        $advert_id1 = $ads_row['advert_id1'];
        $image1 = $ads_row['image1'];
        $title1 = $ads_row['title1'];
        $desc1 = $ads_row['desc1'];

        mysql_query("UPDATE `sidead1` SET `shown1`=1, `impressions1`=`impressions1`+1 WHERE `advert_id1`=$advert_id1");

        $shown1 = mysql_query("SELECT COUNT('advert_id1') FROM `sidead1` WHERE `shown1`=0");
        if (mysql_result($shown1, 0) == 0) {
            mysql_query("UPDATE `sidead1` SET `shown1`=0");
        }
    }

    ?>

2 个答案:

答案 0 :(得分:1)

首先使用PDO!检查你是否从SELECT语句得到的东西是if (mysql_num_rows($result) == 0) { echo "No rows found, nothing to print so am exiting"; exit; }

答案 1 :(得分:0)

您没有在此处查看查询的返回值:

$ads = mysql_query("SELECT `advert_id1`, `title1`, `desc1`, `image1` FROM `sidead1` WHERE UNIX_TIMESTAMP() < `expires1` AND `shown1`=0 ORDER BY `advert_id1` ASC LIMIT 1");

我猜您在UNIX_TIMESTAMP() < expires1``上出现语法错误。你可以这样找到:

if (($ads = mysql_query("...your query...")) == false) {
   die("SQL Error:".mysql_error);
}

始终检查查询的返回状态。

哦 - mysql已被弃用。对新项目使用mysqliPDO。还有旧的!