0

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

我知道此错误消息之前已发布,但与我的特定并发症无关。我最近使用 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");
        }
    }

    ?>
4

2 回答 2

1

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

于 2013-07-08T02:17:28.870 回答
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项目。还有老的!

于 2013-07-08T02:17:38.623 回答