先描述一下:
         有一个php页,前头写了一些代码了,然后在其后先实例化一个类,接着引用类中的方法做程序.
但是报错说,没有实例化这个类.
        但是把这个实例化的类放到所有代码的最上头,就不报错,并且出来了要的效果.所以我怀疑是其上面代码做的怪,可是上面的代码怎么检查也没有查出毛病来,你说怪不怪,这到底是怎么回事呢,如何解决!我怀疑几种可能,其中一种就是上面的代码禁止实例化类了,可是这怎么做到的呢
错误提示>Fatal error: Call to a member function query() on a non-object in D:\WWW\dgcms\e\sch\index.php on line 577我是这么写的
<?php$empire=new mysqlquery();
$sql=$empire->num("select id,title from hd_ecms_news");  
var_dump($sql);
?>然后就提示下面这个Warning: mysql_query(): 11 is not a valid MySQL-Link resource in D:\WWW\dgcms\e\class\db_sql.php on line 15select id,title from ***_ecms_news

解决方案 »

  1.   

    <?php
    $empire->num();Notice: Undefined variable: empire in D:\AMP\web\ide_tmp.php on line 2Fatal error: Call to a member function num() on a non-object in D:\AMP\web\ide_tmp.php on line 2应该很清楚了
      

  2.   

    你把这段代码
    <?php
    $uztcsql=$empire->query("select id,title from {$dbtbpre}ecms_news");
    var_dump($uztcsql);
    ?>
    放在帝国全文搜索模板中
    [!--empirenews.listtemp--]列表内容[!--empirenews.listtemp--]标签下面(下面指的是外面,不是里面的下面)
    然后你看是啥提示,肯定是Fatal error: Call to a member function query() on a non-object in
    然后你再把这段代码放在这对标签的上面(上面指的是这对标签的外面的上面,不是里)
    就会显示正常,就是这个问题,这说明了啥
      

  3.   

    这是我的试验,分别放在上面和下面的时候出现的情况你把下面这段代码复制到帝国cms7.2后台中的全文搜索模板中,就能看到我这种情况了
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>搜索 - Powered by EmpireCMS</title>
    <link href="[!--news.url--]skin/default/css/style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="[!--news.url--]skin/default/js/tabs.js"></script>
    <style type="text/css">
    <!--
    .r {
    display:inline;
    font-weight:normal;
    margin:0;
    font-size:16px;
    margin-top:10px;
    }
    .a{color:green}
    .fl{color:#77c}
    -->
    </style>
    </head>
    <body class="listpage">
    [!--temp.dtheader--]
    <?php
    $uztcsql=$empire->query("select id,title from {$dbtbpre}ecms_news");
    var_dump($uztcsql);
    ?>
    <table width="100%" border="0" cellspacing="10" cellpadding="0">
    <tr valign="top">
    <td class="list_content"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="position">
    <tr>
    <td>现在的位置:<a href="[!--news.url--]">首页</a>&nbsp;>&nbsp;搜索</td>
    </tr>
    </table>
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="box">
    <tr>
    <td><form action='index.php' method="GET" name="search_news" id="search_news">
    <table width="100%" border="0" cellspacing="6" cellpadding="0">
    <tr>
    <td height="32">关键字:
    <input name="keyboard" type="text" id="keyboard" value="[!--keyboard--]" size="42" />
                        <select name="field" id="field">
                          <option value="1">全文</option>
                          <option value="2">标题</option>
                          <option value="3">内容</option>
                        </select> 
                        <input type="submit" name="Submit22" value="搜索" />
                        <font color="#666666">(多个关键字请用&quot;空格&quot;隔开)</font> </td>
    </tr>
    </table>
    </form>
    <table width="100%" border="0" cellpadding="0" cellspacing="6">
    <tr>
    <td>系统搜索到约有<strong>[!--num--]</strong>项符合<strong>[!--keyboard--]</strong>的查询结果</td>
    </tr>
    </table>
    [!--empirenews.listtemp--]
    <h2 class="r"><span>[!--no.num--].</span> <a class="l" href="[!--titleurl--]" target="_blank">[!--title--]</a></h2>
    <table width="80%" border="0" cellpadding="0" cellspacing="0">
    <tbody>
    <tr>
    <td>[!--smalltext--]</td>
    </tr>
    <tr>
    <td><span class="a">[!--titleurl--] - [!--newstime--]</span></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    </tr>
    </tbody>
    </table>
    [!--empirenews.listtemp--]
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="list_page">
    <tr>
    <td>[!--listpage--]</td>
    </tr>
    </table></td>
    </tr>
    </table></td>
    </tr>
    </table>
    <?php
    $uztcsql=$empire->query("select id,title from {$dbtbpre}ecms_news");
    var_dump($uztcsql);
    ?>
    [!--temp.footer--]
    </body>
    </html>
      

  4.   

    $empire=new mysqlquery();
    这个类你有include进来吗?
      

  5.   

    中间那段模板,很可能是占用了$empire作临时变量,然后释放掉了
    下一步最好能得到经过模板引擎解析后生成的原生php模板
      

  6.   

    我做了大量实验,即,在这对标签下面不可以调用sql,不可以实例化类,只能输出简单的echo 之类的,也不知啥玩的