本帖最后由 z372846985 于 2012-2-4 13:48 编辑
封装ADODB连接数据库类 提示Virtual Class -- cannot instantiate
代码
conn.class.php
<?php
class ConnDB{
var $dbtype; //数据库的类型
var $host; //服务器名称
var $user; //用户名
var $pwd; //密码
var $dbname; //数据库名称
var $debug; //是否返回执行的数据库,默认设置为返回SQL
var $conn; //连接数据库时返回的连接标识
//构造方法,为成员数变量赋值
function ConnDB($dbtype,$host,$user,$pwd,$dbname,$debug=true){
$this->dbtype=$dbtype;
$this->host=$host;
$this->user=$user;
$this->pwd=$pwd;
$this->dbname=$dbname;
$this->debug=$debug;
}
//实现与不同数据库的连接并返回连接对象
function GetConnId(){
include_once 'adodb/adodb.inc.php'; //调用数据库类库文件
if ($this->dbtype=="mysql"||$this->dbtype=="mssql") { //判断变量传递的数据库类型
if ($this->dbtype=="mysql") //如果是MYSQL数据库
$this->conn=new ADOConnection("mysql"); //执行与MYSQL数据库的连接
else
$this->conn=new ADOConnection("mssql");
$this->conn->Connect($this->host,$this->user,$this->pwd,$this->dbname);//数据库连接的地址、用户名、密码、数据库名
}elseif ($this->dbtype=="access"){
$this->conn=new ADOConnection("access");
$this->conn->Connect("Driver={microsoft access driver(*.mdb)};dbq=$this->dbname;uid=$this->user;pwd=$this->pwd;");
}
$this->conn->Execute("set names utf8"); //设置数据库的编码格式
if ($this->dbtype=="mysql")
$this->conn->debug=$this->debug;
return $this->conn;
}
//定义关闭数据的方法
function CloseConnId(){
$this->conn->Disconnect(); //执行关闭数据库的操作
}
}
?>
link_conn.php
<?php
include_once 'conn.class.php';
$connobj=new ConnDB("mysql","localhost","root","xuchen","xuchen",false);
$conn=$connobj->GetConnId();
?>
index.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> 封装ADODB连接数据库类</title>
</head>
<body>
<?php
include_once 'link_conn.php'; //包含数据库连接类的实例化文件
if($conn){
echo "<script>alert('数据库连接成功!');window.location.href=‘123.php’;</script>";
}else{
echo "<script>alert('数据库连接失败!');window.location.href='index.php';</script>";
}
?>
</body>
</html> |