首页数据库php连接access数据库?php怎么连接access数据库

php连接access数据库?php怎么连接access数据库

编程之家2023-10-17108次浏览

大家好,今天给各位分享php连接access数据库的一些知识,其中也会对php怎么连接access数据库进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

php连接access数据库?php怎么连接access数据库

php怎么连接access数据库

(1)创建系统数据源,用PHP提供的ODBC函数。

(2)使用PHP的ODBC函数,但不创建数据源。

PHP使用ODBC连接Access数据库的方法。用$connstr="DRIVER= Microsoft Access Driver(*.mdb)来设置数据驱动,函数realpath()用来取得数据库的相对路径。利用该方法连接Access数据库主要应用到PHP的 odbc_connect()函数,该函数声明如下:

以下为引用的内容:

resourse odbc_connect( string dsn, string user, string password [, int cursor_type])

dsn:系统dsn名称

php连接access数据库?php怎么连接access数据库

user:数据库服务器某用户名。

password:数据库服务器某用户密码。

cursor_type:游标类型。

代码如下:

以下为引用的内容:

$connstr="DRIVER=Microsoft Access Driver(*.mdb);

php连接access数据库?php怎么连接access数据库

DBQ=".realpath("bookinfo.mdb");

$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);

(3)使用微软的ADODB数据库驱动。

定义类COM来使用ADO方法操纵Access数据库的。

该类详细说明如下:

以下为引用的内容:

string com::com( string module_name [, string server_name [, int codepage]])

module_name:被请求组件的名字或class-id。

server_name:DCOM服务器的名字。

Codepage:指定用于将PHP字符串转换成UNICODE字符串的代码页,反之亦然。该参数的取值有CP_ACP、CP_MACCP、CP_OEMCP、CP_SYMBOL、CP_THREAD_ACP、CP_UTF7和CP_UTF8。

PHP利用com类并使用ADO方法访问数据库的代码如下:

以下为引用的内容:

$conn= new com("ADODB.Connection");

$connstr="DRIVER={Microsoft Access Driver(*.mdb)}; DBQ=". realpath("bookinfo.mdb");

$conn->Open($connstr);

如何用php连接mdb数据库

以下为几个php连接access数据库和操作acess数据的方法,全部做成了类,应用起来也更方便,也可摘用其中的部分代码应用。

<?php

--------------------------------------------------------------------

//FileName:class.php

//Summary: Access数据库操作类

//使用范例:

//$databasepath="database.mdb";

//$dbusername="";

//$dbpassword="";

//include_once("class.php");

//$access=new Access($databasepath,$dbusername,$dbpassword);

--------------------------------------------------------------------

class Access

{

var$databasepath,$constr,$dbusername,$dbpassword,$link;

function Access($databasepath,$dbusername,$dbpassword)

{

$this->databasepath=$databasepath;

$this->username=$dbusername;

$this->password=$dbpassword;

$this->connect();

}

function connect()

{

$this->constr="DRIVER={Microsoft Access Driver(*.mdb)}; DBQ=". realpath($this->databasepath);

$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);

return$this->link;

//if($this->link) echo"恭喜你,数据库连接成功!";

//else echo"数据库连接失败!";

}

function query($sql)

{

return@odbc_exec($this->link,$sql);

}

function first_array($sql)

{

return odbc_fetch_array($this->query($sql));

}

function fetch_row($query)

{

return odbc_fetch_row($query);

}

function total_num($sql)//取得记录总数

{

return odbc_num_rows($this->query($sql));

}

function close()//关闭数据库连接函数

{

odbc_close($this->link);

}

function insert($table,$field)//插入记录函数

{

$temp=explode(',',$field);

$ins='';

for($i=0;$i<count($temp);$i++)

{

$ins.="'".$_POST[$temp[$i]]."',";

}

$ins=substr($ins,0,-1);

$sql="INSERT INTO".$table."(".$field.") VALUES(".$ins.")";

$this->query($sql);

}

function getinfo($table,$field,$id,$colnum)//取得当条记录详细信息

{

$sql="SELECT* FROM".$table." WHERE".$field."=".$id."";

$query=$this->query($sql);

if($this->fetch_row($query))

{

for($i=1;$i<$colnum;$i++)

{

$info[$i]=odbc_result($query,$i);

}

}

return$info;

}

function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得记录列表

{

$sql="SELECT* FROM".$table."".$condition."".$sort;

$query=$this->query($sql);

$i=0;

while($this->fetch_row($query))

{

$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);

$i++;

}

return$recordlist;

}

function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表

{

$sql="SELECT".$field." FROM".$table."".$condition."".$sort;

$query=$this->query($sql);

$i=0;

while($this->fetch_row($query))

{

for($j=0;$j<$fieldnum;$j++)

{

$info[$j]=odbc_result($query,$j+1);

}

$rdlist[$i]=$info;

$i++;

}

return$rdlist;

}

function updateinfo($table,$field,$id,$set)//更新记录

{

$sql="UPDATE".$table." SET".$set." WHERE".$field."=".$id;

$this->query($sql);

}

function deleteinfo($table,$field,$id)//删除记录

{

$sql="DELETE FROM".$table." WHERE".$field."=".$id;

$this->query($sql);

}

function deleterecord($table,$condition)//删除指定条件的记录

{

$sql="DELETE FROM".$table." WHERE".$condition;

$this->query($sql);

}

function getcondrecord($table,$condition="")//取得指定条件的记录数

{

$sql="SELECT COUNT(*) AS num FROM".$table."".$condition;

$query=$this->query($sql);

$this->fetch_row($query);

$num=odbc_result($query,1);

return$num;

}

}

?>

22222222

class.php文件:

[php]

<?php

class Access//Access数据库操作类

{

var$databasepath,$constr,$dbusername,$dbpassword,$link;//类的属性

function Access($databasepath,$dbusername,$dbpassword)//构造函数

{

$this->databasepath=$databasepath;

$this->username=$dbusername;

$this->password=$dbpassword;

$this->connect();

}

function connect()//数据库连接函数

{

$this->constr="DRIVER={Microsoft Access Driver(*.mdb)}; DBQ=". realpath($this->databasepath);

$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);

return$this->link;

//if($this->link) echo"恭喜你,数据库连接成功!";

//else echo"数据库连接失败!";

}

function query($sql)//送一个查询字符串到数据库中

{

return@odbc_exec($this->link,$sql);

}

function first_array($sql)//从access数据库中返回一个数组

{

return@odbc_fetch_array($this->query($sql));

}

function fetch_row($query)//返回记录中的一行

{

return odbc_fetch_row($query);

}

function total_num($sql)//取得记录总数

{

return odbc_num_rows($this->query($sql));

}

function close()//关闭数据库连接函数

{

odbc_close($this->link);

}

function insert($table,$field)//插入记录函数

{

$temp=explode(',',$field);

$ins='';

for($i=0;$i{

$ins.="'".$_POST[$temp[$i]]."',";

}

$ins=substr($ins,0,-1);

$sql="INSERT INTO".$table."(".$field.") VALUES(".$ins.")";

$this->query($sql);

}

function getinfo($table,$field,$id,$colnum)//取得当条记录详细信息

{

$sql="SELECT* FROM".$table." WHERE".$field."=".$id."";

$query=$this->query($sql);

if($this->fetch_row($query))

{

for($i=1;$i<$colnum;$i++)

{

$info[$i]=odbc_result($query,$i);

}

}

return$info;

}

function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得记录列表

{

$sql="SELECT* FROM".$table."".$condition."".$sort;

$query=$this->query($sql);

$i=0;

while($this->fetch_row($query))

{

$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);

$i++;

}

return$recordlist;

}

function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表

{

$sql="SELECT".$field." FROM".$table."".$condition."".$sort;

$query=$this->query($sql);

$i=0;

while($this->fetch_row($query))

{

for($j=0;$j<$fieldnum;$j++)

{

$info[$j]=odbc_result($query,$j+1);

}

$rdlist[$i]=$info;

$i++;

}

return$rdlist;

}

function updateinfo($table,$field,$id,$set)//更新记录函数

{

$sql="UPDATE".$table." SET".$set." WHERE".$field."=".$id;

$this->query($sql);

}

function deleteinfo($table,$field,$id)//删除记录函数

{

$sql="DELETE FROM".$table." WHERE".$field."=".$id;

$this->query($sql);

}

function deleterecord($table,$condition)//删除指定条件的记录函数

{

$sql="DELETE FROM".$table." WHERE".$condition;

$this->query($sql);

}

function getcondrecord($table,$condition="")//取得指定条件的记录数函数

{

$sql="SELECT COUNT(*) AS num FROM".$table."".$condition;

$query=$this->query($sql);

$this->fetch_row($query);

$num=odbc_result($query,1);

return$num;

}

}

?>

[/php]

数据库连接文件:

[php]

<?php

$databasepath="data/database.mdb";//数据库路径

$dbusername="";//数据库用户名

$dbpassword="";//数据库密码

include_once("class.php");//调用数据库操作类

$access=new Access($databasepath,$dbusername,$dbpassword);//新建一个数据库操作类的对象

?>

[/php]

[php]

<?php

$sql="select* from$info where id=$id";

$result=$access->query($sql)or die("error2");

$array=odbc_fetch_array($result);

?>

[/php]

333333333333

这个是为了同时可以使用access和mysql而做的先弄一个mysql的然后又写一个access的所有的函数一一对应你可以看下绝对原创喔~~

配置文件如下

$config['db']['type']="Mysql";//数据库类型“Mysql”,“Access”

$config['db']['database']="ourcms";//数据库(文件)名

$config['db']['host']="";//数据库主机

$config['db']['username']="7king";//数据库连接用户名

$config['db']['password']="tingting";//数据库连接密码

/*

$config['db']['type']="Access";//数据库类型“Mysql”,“Access”

$config['db']['database']="ourcms.mdb";//数据库(文件)名

$config['db']['host']="";

$config['db']['username']="";

$config['db']['password']="";

<?php

/**

* 2007.04 by zhaohe

*

* php连接access通用类

*

*用法:

*建立new Access类=> set_db设置数据路径=> set_login设置连接数据库的用户名和密码

*=>通过set_conn设置连接=>

*{

get_result获取查询执行结果; get_result_rows获取查询执行列表,一般是select

insert_info插入新的记录 update_info更新记录

}

*

*

*/

class Access{

/**

*类变量定义

*@param$conn mysql连接号

*@param$error错误代号

*@param$username/$password数据库连接用户名和密码

*@param array$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();

}

}

/**

*设置数据库文件名

*@param string$dbfile

*

* return void

*/

function set_db($dbfile){

$this->database=$dbfile;

}

/**

*设置连接数据库的用户名和密码

*@param string$user用户名

*@param string$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=Microsoft Access Driver(*.mdb);DBQ=".realpath($this->database),$this->username,$this->password,SQL_CUR_USE_ODBC))$this->error=0;

else$this->error=1;

}

/**

*设置当前操作的数据表

*@param string$tb

*

*@return void

*/

function set_table($tb){

$this->table=$tb;

}

/**

*返回sql查询结果

*@param string$sql sql语句

*

*@return#id

*/

function get_result($sql){

return odbc_do($this->conn,$sql);

}

/**

*获取查询的结果

*@param string$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;

}

/**

*获取部分查询结果

*

*@param Array数组

*@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$col from$tb";

else

$sql="select top$limit$col from$tb";;

if( isset($order))$sql.=" order by$order";

return$this->get_result_rows($sql);

}

/**

*执行数据库插入操作

*

*@param$arr values列表,数组索引为数据表字段

*@param$tb操作数据表如果为空则为设置的当前类的操作表

*/

function insert_info($arr,$tb=""){

$cols= array_keys($arr);

$values= array_values($arr);

if(empty($tb))$tb=$this->tb;

/*

foreach($arr as$key=>$value){

$cols[]=$key;

$values[]=$value;

}

*/

$sql="insert into [$tb]([".implode("],[",$cols)."]) values('".implode("','",$values)."')";

//return$sql;

return$this->get_result($sql);

}

/**

*执行数据库更新操作

*

*@param array$arr要更新的字段值数组索引为表字段名

*@param array$con条件数组

*@param string$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$sql;

return$this->get_result($sql);

}

}

?>

mysql的类如下

class Mysql{

/**

* mysql连接执行类,将sql的执行实现数据库无关性

*

*

*

*/

/**

*类变量定义

*@param$conn mysql连接号

*@param$error错误代号

*@param$username/$password数据库连接用户名和密码

*@param array$err_info错误信息

*

*@param$debuginfo调试信息

*@param$table当前操作数据表

*/

var$conn;

var$error;

var$username="";

var$password="";

var$host;

var$database;

var$err_info= array(

0=>"没有错误!",

1=>"数据库连接失败!",

2=>"sql执行出错!"

);

var$debuginfo="";

var$table;

function Mysql($arr=null){

if( is_array($arr)){//var_dump($arr);

$this->set_login($arr['host'],$arr['username'],$arr['password']);

$this->set_db($arr['database']);

$this->set_conn();

if( isset($this->error)&&$this->error!=0) die($this->err_info[$this->error]);

}

}

/**

*设置数据库名

*@param string$database

*

* return void

*/

function set_db($dbfile){

$this->database=$dbfile;

}

/**

*设置连接数据库的用户名和密码

*@param string$user用户名

*@param string$pwd密码

*

*@return void

*/

function set_login($host,$user,$pwd){

$this->host=$host;

$this->username=$user;

$this->password=$pwd;

}

/**

*创建数据库连接

*@param

* return void

*/

function set_conn(){

$this->conn=mysql_connect($this->host,$this->username,$this->password);

if( isset($this->conn)&& mysql_select_db($this->database))

$this->error=0;

else

$this->error=1;

}

/**

*设置当前操作的数据表

*@param string$tb

*

*@return void

*/

function set_table($tb){

$this->table=$tb;

}

/**

*返回sql查询结果

*@param string$sql sql语句

*

*@return#id

*/

function get_result($sql){

return mysql_query($sql,$this->conn);

}

/**

*获取查询的结果

*@param string$sql

*

*@return array结果的二维数组

*/

function get_result_rows($sql){

$array= array();

$result=$this->get_result($sql);

while($row= mysql_fetch_assoc($result))

$array[]=$row;

return$array;

}

/**

*获取部分查询结果

*

*@param Array数组

*@return Array

*/

function get_query_result($cols,$tb=null,$condition,$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( isset($limit))

$sql.="select top$limit$col from$tb";

else

$sql="select$col from$tb";

if( isset($condition))$sql.=" where$condition";

if( isset($order))$sql.=" order by$order";

if( isset($limit))$sql.=" limit$start,$limit";

return$this->get_result_rows($sql);

}

/**

*执行数据库插入操作

*

*@param$arr values列表,数组索引为数据表字段

*@param$tb操作数据表如果为空则为设置的当前类的操作表

*/

function insert_info($arr,$tb=""){

$cols= array_keys($arr);

$values= array_values($arr);

if(empty($tb))$tb=$this->table;

/*

foreach($arr as$key=>$value){

$cols[]=$key;

$values[]=$value;

}

*/

$sql="insert into [$tb](`".implode("`,`",$cols)."`) values('".implode("','",$values)."')";

//return$sql;

return$this->get_result($sql);

}

/**

*执行数据库更新操作

*

*@param array$arr要更新的字段值数组索引为表字段名

*@param array$con条件数组

*@param string$tb要操作的数据表

*

*/

function update_info($arr,$con,$tb=""){

$cols= array();

$conditions= array();

if(empty($tb))$tb=$this->table;

if( is_array($arr)){

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

}

else

$sql="update `$tb` set$arr where$con";

//return$sql;

return$this->get_result($sql);

}

}

php使用adodb 链接access方法

需要注意php获取路径用的是realpath

.代码如下:

<?php

$connstr="DRIVER={Microsoft Access Driver(*.mdb)}; DBQ=". realpath("data.mdb");

$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);

$issuetime=date("Y-m-d H:i:s");

$sql="insert into test values("","",...)";

$result=odbc_exec($connid,$sql);

if($result) echo"successful";

else echo"failed";

?>

之二:

.代码如下:

<?PHP

//创建ADO连接

$conn=@new COM("ADODB.Connection") or die("ADO连接失败!");

$connstr="DRIVER={Microsoft Access Driver(*.mdb)}; DBQ=". realpath("temp/TempData.mdb");

$conn->Open($connstr);

//创建记录集查询

$rs=@new COM("ADODB.RecordSet");

$rs->Open("select* from blog_Content",$conn,1,3);

echo$rs->Fields["log_Title"]->Value;//输出log_Title字段

echo"<br/>";

$rs->Movenext();//将记录集指针下移

echo$rs->Fields["log_Title"]->Value;

$rs->close();

?>

方法三:用ODBC,在ODBC治理器中为db1.mdb建一处系统数据源(一般需要服务器权限,不建议使用)

名称:dbdsn(可以自己定)

驱动程序:Microsoft Access Driver(*.MDB)

代码:

.代码如下:

$Conn= odbc_connect("dbdsn","admin","123");//连接数据源

$Doquery=odbc_exec($Conn,"select* from表名 where条件");//执行查询

php连接access数据库和php怎么连接access数据库的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

腾讯qq直播?腾讯直播平台有哪些dmz主机开还是不开,dmz主机有什么作用