PHP连接access数据库的二种方法

 
更多

php连接access数据库的两种方法,总结如下:

(1)第一种方法:

//读取mdb数据库的值,创建ADO连接
$username=1;
$conn=new com("ADODB.Connection");
$connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("web.mdb");//Access数据库地址
$conn->Open($connstr);
//创建记录集
$rs=new com("ADODB.RecordSet");
$assql="select * from sail_about where id=".$username."";
$rs->Open($assql,$conn,1,1);//打开数据库
if(! $rs->eof){
	echo "<br><b>".$rs["title"].":</b> ";
	exit;
}else{
	echo "<br>ACCESS查询成功";
}
//循环读取数据
while(!$rs->eof){ 
	echo $rs->fields['G_date']->Value; 
	echo ''; 
	$rs->movenext();//将记录集指针下移
}
$rs->close();//关闭数据库

(2)第二种方法:

//用odbc_connect函数连接access数据库
$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("web.mdb");
$conn=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
$query=odbc_do($conn,"select * from sail_about");
while(odbc_fetch_row($query)){
	for($i=0;$i<2;$i++){   //$i<2 2值是sail_about 表里的值数
		echo $record[$i] = odbc_result($query,$i+1);
	}
	echo "<br>";
}

PHP连接Access数据库的类

/**
*2007.04byzhaohe
*
*php连接access通用类
*
*用法:
*建立newAccess类=>set_db设置数据路径=>set_login设置连接数据库的用户名和密码
*=>通过set_conn设置连接=>
*{
get_result获取查询执行结果;get_result_rows获取查询执行列表,一般是select
insert_info插入新的记录update_info更新记录
}
*/

class Access{
	/**
	*类变量定义
	*@param$connmysql连接号
	*@param$error错误代号
	*@param$username/$password数据库连接用户名和密码
	*@paramarray$err_info错误信息
	*
	*@param$debuginfo调试信息
	*@param$table当前操作数据表
	*/
	var$conn;
	var$error;
	var$database;
	var$username="";
	var$password="";
	var$err_info=array(
	0=>"没有错误!",
	1=>"数据库连接失败!",
	2=>"sql执行出错!"
	);
	var$debuginfo="";
	var$table;
	
	/**
	*默认构造方法
	**/
	function Access($arr=null){
		if(is_array($arr)){
			$this->set_login($arr['host'],$arr['username'],$arr['password']);
			$this->set_db($arr['database']);
			$this->set_conn();
		}
	}
	
	/**
	*设置数据库文件名
	*@paramstring$dbfile
	*
	*return void
	*/
	function set_db($dbfile){
		$this->database=$dbfile;
	}
	
	/**
	*设置连接数据库的用户名和密码
	*@paramstring$user用户名
	*@paramstring$pwd密码
	*
	*@return void
	*/
	function set_login($user,$pwd){
		$this->username=$user;
		$this->password=$pwd;
	}
	
	/**
	*创建数据库连接
	*@param
	*return void
	*/
	function set_conn(){
		if($this->conn=odbc_connect("DRIVER=MicrosoftAccessDriver(*.mdb);DBQ=".realpath($this->database),$this->username,$this->password,SQL_CUR_USE_ODBC)){
			$this->error=0;
		}else{
			$this->error=1;
		}
	}
	
	/**
	*设置当前操作的数据表
	*@paramstring$tb
	*
	*@return void
	*/
	function set_table($tb){
		$this->table=$tb;
	}
	
	/**
	*返回sql查询结果
	*@paramstring$sqlsql语句
	*
	*@return #id
	*/
	function get_result($sql){
		return odbc_do($this->conn,$sql);
	}
	
	/**
	*获取查询的结果
	*@paramstring$sql
	*
	*@return array结果的二维数组
	*/
	function get_result_rows($sql){
		$array=array();
		$result=$this->get_result($sql);
		while($row=odbc_fetch_array($result)){
			$array[]=$row;
		}
		return $array;
	}
	/**
	*获取部分查询结果
	*
	*@paramArray数组
	*@return Array
	*/
	function get_query_result($cols,$tb=null,$order=null,$limit=null,$start=0){
		if(empty($tb)){
			$tb=$this->table;
		}else{
			$this->table=$tb;
		}
		
		if(is_array($cols)){
			$col="[".implode('],[',$cols)."]";
		}else{
			$col=$cols;
		}
		
		if(empty($limit)){
			$sql="select$colfrom$tb";
		}else{
			$sql="selecttop$limit$colfrom$tb";
		}
		if(isset($order)){
			$sql.="orderby$order";
		}
		return $this->get_result_rows($sql);
	}
	
	/**
	*执行数据库插入操作
	*
	*@param$arrvalues列表,数组索引为数据表字段
	*@param$tb操作数据表如果为空则为设置的当前类的操作表
	*/
	function insert_info($arr,$tb=""){
		$cols=array_keys($arr);
		$values=array_values($arr);
		if(empty($tb)){
			$tb=$this->tb;
		}
		$sql="insertinto[$tb]([".implode("],[",$cols)."])values('".implode("','",$values)."')";
		return $this->get_result($sql);
	}
	
	/**
	*执行数据库更新操作
	*
	*@paramarray$arr要更新的字段值数组索引为表字段名
	*@paramarray$con条件数组
	*@paramstring$tb要操作的数据表
	*
	*/
	function update_info($arr,$con,$tb=""){
		$cols=array();
		$conditions=array();
		if(empty($tb)){
			$tb=$this->tb;
		}
		foreach($arr as $key=>$value){
			$cols[]="[$key]='$value'";
		}
		foreach($con as $key=>$value){
			//检查数据类型
			if(is_int($value)||is_float($value)){
				$conditions[]="[$key]=$value";
			}else{
				$conditions[]="[$key]='$value'";
			}
		}
		$sql="update[$tb]set".implode(",",$cols)."where".implode("and",$conditions);
		return $this->get_result($sql);
	}
}

php连接access数据库详细说明

打赏

本文固定链接: https://www.cxy163.net/archives/4429 | 绝缘体

该日志由 绝缘体.. 于 2013年05月23日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: PHP连接access数据库的二种方法 | 绝缘体
关键字: , , , ,

PHP连接access数据库的二种方法:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter