<?phpclass DataBase{
var $server = "loaclhost:3306";
var $dataBase = "topd3";
var $uid = "root";
var $pwd = "000000";

private function GetConnection(){
$Connection = mysql_connect ($server,$uid,$pwd);
return $Connection;
}
private function OpenDataBase($conn){
mysql_select_db($dataBase,$conn);
}

private function InitDataBase(){
$connection =  GetConnection();
OpenDataBase($connection);
}

function DataBase(){
InitDataBase();
}
public function Execute($commandText){
$result= mysql_query ($commandText);
$dataTable = array();
while ($row = mysql_fetch_array($result)){
$dataTable[] = $row;
}
return $dataTable;
}
}
调用的时候报错
Fatal error: Call to undefined function InitDataBase() 
照字面意思是方法InitDataBase未定义 可恶我明明定义了啊
?>

解决方案 »

  1.   

    要这样 调用   $this->InitDataBase();
      

  2.   

    你的那些方法不都是私有的(private)吗?
    私有方法是不能在外部访问的又,方法总调用方法需要冠以 $this->
        private function InitDataBase(){
            $connection =  GetConnection();
            OpenDataBase($connection);
        }
    应写作
        public function InitDataBase(){
            $connection =  $this->GetConnection();
            $this->OpenDataBase($connection);
        }
      

  3.   

       <?phpclass DataBase{
       // var $server = "loaclhost:3306";   //这里loaclhost写错了
       var $server = "localhost:3306";
        var $dataBase = "dnkb";
        var $uid = "root";
        var $pwd = "123456";
        
        private    function GetConnection(){
            // $Connection = mysql_connect ($server,$uid,$pwd);   //$this->  用来获取类中的属性和方法
        $Connection = mysql_connect ($this->server,$this->uid,$this->pwd);  //这里要用$this->//方式获取类中的属性
            return $Connection;
        }
        private    function OpenDataBase($conn){
            mysql_select_db($this->dataBase,$conn);
        }
        
        private function InitDataBase(){
            $connection =  $this->GetConnection();   //这里要用$this->   获取类中的方法
            $this->OpenDataBase($connection);   //这里要用$this->  获取类中的方法
        }
        
        function DataBase(){
            $this->InitDataBase();  //这里要用$this->  获取类中的方法
        }
        public function Execute($commandText){
            $result=    mysql_query ($commandText);
            $dataTable = array();
            while ($row = mysql_fetch_array($result)){
                $dataTable[] = $row;
            }
            return $dataTable;
    }
    }$database = new DataBase();   
    ?>
      

  4.   

    建议lz 把刀客羽朋的php5面向对象下载来看一下,网上有很多,看完消化后,一定会对lz有所帮助
     下载地址如下:
     PHP5面向对象初步_刀客羽朋版    http://download.csdn.net/detail/php_chizhou/3180873
      

  5.   

    php不是java,C#,别人比认你那么写的
      

  6.   


        function DataBase(){
            InitDataBase();
        }
        //改为
        function DataBase(){
            $this->InitDataBase();
        }调用自己的方法要用$this->
    静态用self::
    父类用parent::