我制作了两个php文件:
- class.datebase.php
- class.ManageDatabase.php
我用来连接数据库的这个文件。。。但我犯了错误。。。
你能帮我吗…
class.database.php:
<?php
include_once ( '../config.php' );
class database {
protected $db_conn;
public $db_name = DB_NAME;
public $db_host = DB_HOST;
public $db_user = DB_USER;
public $db_pass = DB_PASS;
}
function connect(){
try {
$this->db_conn = new PDO("mysql:host = $this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
} catch(PDOException $e) {
return $e->getMessage();
}
}
?>
类。ManageDatabase.php:
<?php
class ManageDatabase{
public $link;
function __construct(){
include_once( 'class.database.php' );
$conn = new database;
$this->link = $conn->connect();
return $this->link;
}
}
$something = new ManageDatabase;
echo $something;
?>
错误:
Fatal error: Call to undefined method database::connect() in C:'xampp'htdocs'myweb'crud'core'class.ManageDatabase.php on line 9
将连接函数放在Database类中,而不是放在它之外(在此文件中:class.Database.php)
函数连接是在类数据库之外定义的
class database {
protected $db_conn;
public $db_name = DB_NAME;
public $db_host = DB_HOST;
public $db_user = DB_USER;
public $db_pass = DB_PASS;
// don't close the class here
function connect(){
try {
$this->db_conn = new PDO("mysql:host = $this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
} catch(PDOException $e) {
return $e->getMessage();
}
}
} //close it here
简单。。。你必须改变这个:
class database {
protected $db_conn;
public $db_name = DB_NAME;
public $db_host = DB_HOST;
public $db_user = DB_USER;
public $db_pass = DB_PASS;
}
function connect(){
try {
$this->db_conn = new PDO("mysql:host = $this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
} catch(PDOException $e) {
return $e->getMessage();
}
}
至
class database {
protected $db_conn;
public $db_name = DB_NAME;
public $db_host = DB_HOST;
public $db_user = DB_USER;
public $db_pass = DB_PASS;
function connect(){
try {
$this->db_conn = new PDO("mysql:host = $this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
} catch(PDOException $e) {
return $e->getMessage();
}
}
}
您在函数之前关闭了类,所以当您在类内部调用函数时,它不起作用。
您的connect函数应该是类的一个方法:
class database {
protected $db_conn;
public $db_name = DB_NAME;
public $db_host = DB_HOST;
public $db_user = DB_USER;
public $db_pass = DB_PASS;
function connect(){
try {
$this->db_conn = new PDO("mysql:host = $this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
} catch(PDOException $e) {
return $e->getMessage();
}
}
}