帝国cms报错Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in 作者:30yi.cn     时间:2020-11-01

简单概括
根源在于,排序有问题。order by的字段缺失。

帝国CMS是相当好用的一款建站cms,但在开发过程中还是难以避免因为这样那样导致的问题。

比如,一段文章调用的源码出现这个报错提示:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in...

源码如下:
 

           <?php
                $ecms_bq_sql2=sys_ReturnEcmsLoopBq("select titleurl,title,titlepic,classid from [!db.pre!]ecms_$bqr[tbname] where classid in (select classid from `[!db.pre!]enewsclass` where bclassid ='$bqr[classid]') order by myorder asc limit 10",20,24,0);
                $bqno2=0;
                while($bqr2=$empire->fetch($ecms_bq_sql2)){
                       $bqsr2=sys_ReturnEcmsLoopStext($bqr2);
                       $bqno2++;
            ?>


报错  Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in...

这是什么原因呢?

网上教程各种各样,但都没法解决问题。

相关调用是长期高频使用的调用方式,为什么这里会有问题呢?

问题,就出在order by myorder asc。

因为调用的是文章,没有myorder这个字段,就会报错,改为newstime或ID后,一切正常。