Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL错误:警告:MySQL\u fetch\u assoc()希望参数1是资源_Php_Mysql_Database - Fatal编程技术网

PHP/MySQL错误:警告:MySQL\u fetch\u assoc()希望参数1是资源

PHP/MySQL错误:警告:MySQL\u fetch\u assoc()希望参数1是资源,php,mysql,database,Php,Mysql,Database,我读了其他的问题。当然,这个错误以前已经发布过了。这是一个常见的错误。我如何/为什么会出错是独一无二的。不是复制品 我知道这个错误信息以前已经发布过了,但并不是因为我的具体问题。我最近使用xammp在本地服务器上建立了一个站点。在我上传之前,在我的本地机器上一切正常。在上传到我的网络主机后,我遇到了至少8个新问题,但已经能够解决每个问题。其中3个是在本网站的帮助下完成的。我相信我会有它完成后,这个错误是固定的 问题是我的广告旋转系统。这是一个非常简单的脚本/系统。有4个数据库在页面上的4个独立的

我读了其他的问题。当然,这个错误以前已经发布过了。这是一个常见的错误。我如何/为什么会出错是独一无二的。不是复制品

我知道这个错误信息以前已经发布过了,但并不是因为我的具体问题。我最近使用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");
        }
    }

    ?>

首先使用PDO!检查您是否从SELECT语句中得到了回报,这里是how
if(mysql\u num\u rows($result)==0){
echo“没有找到行,没有要打印的内容,因此我正在退出”;
出口

}

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

$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");
始终检查查询的返回状态


Oh-
mysql
已被弃用。对新项目使用
mysqli
PDO
。还有老的

有关如何对此进行故障排除,请参阅。我查看了答案,但不理解,抱歉。你能更具体地说明我应该如何实现这一点吗?我应该说,我对这一切都很陌生。我一直看到这种类型的问题,你应该阅读。在我来这里提问之前,我已经阅读了大量的文档。我不知道如何/在何处实现它。如果您不介意用我的代码向我展示,我将在何处/如何用上面的代码运行它?在定义变量后,在while语句之前检查您是否使用此
If(mysql_num_rows($ads)==0)得到任何结果“找不到行,没有要打印的内容,所以我正在退出”;exit;}
继续并停止使用此脚本在此处查找PDO一旦我输入ifk语句,我会收到以下错误警告:mysql_num_rows()希望参数1是resource,第5行的/home/ncgotggb/public_html/includes/advists/sidead1.php中给出的布尔值。没有找到行,没有要打印的内容,所以我现在也在这里。假设现在这是做这件事的“最佳”方式,你做这件事的方式很古老,不推荐!不要这样做。谢谢,我会把你的代码放在thoug中吗h?对不起,正如我告诉他们的那样,我对这一点还不熟悉,不知道该把它放在我的代码中的什么地方。替换第四行($ads=…)使用我发布的代码片段,在您的查询中编辑之后。您还有一个
更新
查询,您应该进一步检查返回状态。我将您的代码放入并获得此错误SQL错误:mysql\u错误您是否复制了此
死亡(“SQL错误:.mysql\u错误”);
正确地复制了此代码?我应该将上述内容粘贴到哪里?
if (($ads = mysql_query("...your query...")) == false) {
   die("SQL Error:".mysql_error);
}