现在有三个类:
DB.php
<?php
calss DB
{
   protected $mysqli;
   function __construct()
   {
      ....
   }
}
?>
book.php
<?php
reuqire_omce('DB.php');
calss book
{
   static function getbook()
   {
      ...
    }
}
?>
notice.php
<?php
require_once('DB.php'):
calss notice
{
  static function getnotice()
  {
       ...
   }
}
?>index.php
<?php
require_once('book.php');
$bookdata = book::getbook();
require_once('notice.php');
$noticedata = notice::getnotice();
?>现在的问题是:当index.php执行到$noticedata=notice::getnotice();时报错,说DB.php的数据库执行查询的语句没有选择数据库:'No database selected'.但单独执行
require_once('book.php');
$bookdata = book::getbook();或
require_once('notice.php');
$noticedata = notice::getnotice();
多没有问题。我觉得问题出在require_once上。但不知道该怎么改。大家帮帮忙 谢谢。
 

解决方案 »

  1.   

    book.php 
    <?php 
    reuqire_omce('DB.php'); 
    reqire_once 吧?
      

  2.   

    刚才发的有拼写错误。改一下。现在有三个类: 
    DB.php 
    <?php 
    class DB 

      protected $mysqli; 
      function __construct() 
      { 
          .... 
      } 

    ?> 
    book.php 
    <?php 
    require_once('DB.php'); 
    class book 

      static function getbook() 
      { 
          ... 
        } 

    ?> 
    notice.php 
    <?php 
    require_once('DB.php'): 
    class notice 

      static function getnotice() 
      { 
          ... 
      } 

    ?> index.php 
    <?php 
    require_once('book.php'); 
    $bookdata = book::getbook(); 
    require_once('notice.php'); 
    $noticedata = notice::getnotice(); 
    ?> 现在的问题是:当index.php执行到$noticedata=notice::getnotice();时报错,说DB.php的数据库执行查询的语句没有选择数据库:'No database selected'.但单独执行 
    require_once('book.php'); 
    $bookdata = book::getbook(); 或 
    require_once('notice.php'); 
    $noticedata = notice::getnotice(); 
    多没有问题。 我觉得问题出在require_once上。但不知道该怎么改。大家帮帮忙 谢谢。 
      

  3.   

    谢谢大家。应该是once,不是omce.是拼写错误,我已经改了。但'No database selected'错误仍然有呀
      

  4.   

    'No database selected'
    就是说你的数据库连接有问题吧。
    你在book.php里require_once('DB.PHP')时有没有连接数据库服务器?连接时有没有指定数据库?
      

  5.   

    不要用once,试一下不带once的
      

  6.   

    改成这样, 试一下require_once('book.php'); 
    $bookdata = book::getbook(); 
    require('notice.php'); 
    $noticedata = notice::getnotice(); 
      

  7.   

    require_once就是指包含一次require_once('book.php'); 
    $bookdata = book::getbook(); 
    require_once('notice.php'); 
    $noticedata = notice::getnotice(); 因为book.php中已有require_once('DB.php')了 所以notice.php中的require_once('DB.php')不再包含
    把require_once('DB.php') 改成require('DB.php')试试看
      

  8.   

    'No database selected'是说你没有选择一个数据库。这和require没有关系了。
    你可以在执行具体的sql语句之前指定要操作的数据库。有2种办法:
    mysql_select_db($db_name);
    query("use $db_name"); //此为伪函数,自己改一下