大家看看我写的数据库连接方式 那里错了

telankes2000 2012-03-05 10:00:22


<?php

class 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未定义 可恶我明明定义了啊
?>

...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
saturndragon 2012-03-05
  • 打赏
  • 举报
回复

function DataBase(){
InitDataBase();
}
//改为
function DataBase(){
$this->InitDataBase();
}

调用自己的方法要用$this->
静态用self::
父类用parent::
总哈哈 2012-03-05
  • 打赏
  • 举报
回复
php不是java,C#,别人比认你那么写的
freedom_gooboy 2012-03-05
  • 打赏
  • 举报
回复
建议lz 把刀客羽朋的php5面向对象下载来看一下,网上有很多,看完消化后,一定会对lz有所帮助
下载地址如下:
PHP5面向对象初步_刀客羽朋版 http://download.csdn.net/detail/php_chizhou/3180873
freedom_gooboy 2012-03-05
  • 打赏
  • 举报
回复


<?php

class 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();


?>


jaksmine 2012-03-05
  • 打赏
  • 举报
回复

正解
[Quote=引用 2 楼 xuzuning 的回复:]

你的那些方法不都是私有的(private)吗?
私有方法是不能在外部访问的

又,方法总调用方法需要冠以 $this->
PHP code
private function InitDataBase(){
$connection = GetConnection();
OpenDataBase($connection);
}

应写作
……
[/Quote]
xuzuning 2012-03-05
  • 打赏
  • 举报
回复
你的那些方法不都是私有的(private)吗?
私有方法是不能在外部访问的

又,方法总调用方法需要冠以 $this->
    private function InitDataBase(){
$connection = GetConnection();
OpenDataBase($connection);
}
应写作
    public function InitDataBase(){
$connection = $this->GetConnection();
$this->OpenDataBase($connection);
}
kodee01 2012-03-05
  • 打赏
  • 举报
回复
要这样 调用 $this->InitDataBase();

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧