php连接Acce数据库的三种方法_数据库连接三种方法

其他范文 时间:2020-02-28 23:05:49 收藏本文下载本文
【www.daodoc.com - 其他范文】

php连接Acce数据库的三种方法由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据库连接三种方法”。

最近想把一个asp的网站改成php的,无奈空间不支持mysql数据库,只好用acce数据库了,但以前都是用的php+mysql,php+acce数据库编程还真没有做过.感谢党,感谢cctv,感谢搜索引擎,这不找到一编不错的文章,特转过来和大家分享.在PHP中连接Acce有如下3种方式。php程序员之家

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

php程序员之家

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

开放数据库连接(Open DateBase Conection,ODBC)是Windows Open Server(开放服务)API(WOSA)产品之一。一个数据源是对数据库的一个命名连接。对于应用程序要连接的不同类型的数据库,都需要一个ODBC驱动程序。ODBC API主要是为客户/服务器的RDBMS使用设计的,但是ODBC驱动程序也可以用于连接桌面数据库文件、工作表和平面文件。ODBC使用Odbcinst.dll库来设置和清除数据源。Odbcad32.exe是一个用于建立ODBC数据源的独立的32位可执行应用程序,在控制面板中有其对应的图标Control Panel。php程序员站

ODBC驱动管理程序为数据源打开ODBC驱动程序并将SQL语句传送给驱动程序。在客户/服务器RDBMS处理完一个select查询后,ODBC驱动程序将值返回给应用程序。当执行一个insert、update或delete语句时,驱动程序返回查询所影响的行数。phperz.com

下面介绍PHP使用ODBC连接Acce数据库的方法。用$connstr=“DRIVER= Microsoft Acce Driver(*.mdb)来设置数据驱动,函数realpath()用来取得数据库的相对路径。利用该方法连接Acce数据库主要应用到PHP的odbc_connect()函数,该函数声明如下: www.daodoc.com' , g_tel = '13800138xxx'”;$db->aryText = “1 = 1”;//条件;赋予1=1表示批量操作 $db->upData();

//数据删除操作

$db->aryText = “id = 4”;$db->delData();

//数据查询操作

$db->aryChar = “id , g_name , g_mail , g_oicq , g_time , g_body”;//可使用“*”全部查询

$db->aryText = “1 = 1 order by id”;//条件1 = 1表示查询所有记录 $db->pageView = true;//是否分页 $db->pageSize = 10;//指定每页记录数 $db->pageUrl = “?id=1&”;//传入其它保留参数 $db->pageCode = $_GET['page'];//获取当前页序号 $db->getData();echo “n”;for($i = 0;$i bodyAry);$i ++){ //注意这里,$db->bodyAry是一个二维数组,行-> 列 echo “n”;for($j = 0;$j bodyAry[$i]);$j ++){ echo “”.$db->bodyAry[$i][$j].“n”;} echo “n”;} if($db->pageView == true){ echo “n”;echo $db->pageViewText;//这里是DB类返回的分页字符 echo “nn”;}

//echo $db->showMeage;//返回提示内容,调试时可开启

?>

//$databasepath=“database.mdb”;//$dbusername=“”;//$dbpaword=“”;//include_once(“cla.php”);//$acce=new Acce($databasepath,$dbusername,$dbpaword);------cla Acce { var $databasepath,$constr,$dbusername,$dbpaword,$link;function Acce($databasepath,$dbusername,$dbpaword){ $this->databasepath=$databasepath;$this->username=$dbusername;$this->paword=$dbpaword;$this->connect();}

function connect(){ $this->constr=“DRIVER={Microsoft Acce Driver(*.mdb)};DBQ=”.realpath($this->databasepath);

$this->link=odbc_connect($this->constr,$this->username,$this->paword,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;$iquery($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

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

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 cla.php文件: [php]

function Acce($databasepath,$dbusername,$dbpaword)//构造函数 { $this->databasepath=$databasepath;$this->username=$dbusername;$this->paword=$dbpaword;$this->connect();}

function connect()//数据库连接函数 { $this->constr=“DRIVER={Microsoft Acce Driver(*.mdb)};DBQ=”.realpath($this->databasepath);$this->link=odbc_connect($this->constr,$this->username,$this->paword,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)//从acce数据库中返回一个数组 { 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

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

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]

include_once(“cla.php”);//调用数据库操作类

$acce=new Acce($databasepath,$dbusername,$dbpaword);//新建一个数据库操作类的对象 ?> [/php]

[php] query($sql)or die(“error2”);$array=odbc_fetch_array($result);?> [/php] 333333333333 这个是为了 同时可以使用acce和mysql而做的 先弄一个mysql的 然后又写一个acce的 所有的函数一一对应 你可以看下 绝对原创喔~~ 配置文件如下

$config['db']['type'] = “Mysql”;//数据库类型“Mysql”,“Acce” $config['db']['database']= “ourcms”;//数据库(文件)名 $config['db']['host'] = “”;//数据库主机

$config['db']['username']= “7king”;//数据库连接用户名 $config['db']['paword']= “tingting”;//数据库连接密码

/* $config['db']['type'] = “Acce”;//数据库类型“Mysql”,“Acce” $config['db']['database']= “ourcms.mdb”;//数据库(文件)名 $config['db']['host'] = “”;$config['db']['username']= “”;$config['db']['paword']= “”;

set_db设置数据路径 => set_login 设置连接数据库的用户名和密码

* => 通过set_conn 设置连接 => * { get_result 获取查询执行结果;get_result_rows 获取查询执行列表,一般是select insert_info 插入新的记录 update_info更新记录 } * * */

cla Acce { /** * 类变量定义

* @param $conn mysql连接号 * @param $error 错误代号

* @param $username/$paword 数据库连接用户名和密码 * @param array $err_info 错误信息 * * @param $debuginfo 调试信息 * @param $table 当前操作数据表 */ var $conn;var $error;var $database;var $username = “”;var $paword = “”;var $err_info = array(0 => “没有错误!”, 1 => “数据库连接失败!”, 2 => “sql执行出错!”);var $debuginfo=“”;var $table;/** * 默认构造方法 **/ function Acce($arr=null){ if(is_array($arr)){ $this->set_login($arr['host'] , $arr['username'] , $arr['paword']);$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->paword=$pwd;} /** * 创建数据库连接 * @param * return void */ function set_conn(){

if($this->conn=odbc_connect(“DRIVER=Microsoft Acce Driver(*.mdb);DBQ=”.realpath($this->database),$this->username,$this->paword,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(iet($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).“ ”,$conditions);//return $sql;return $this->get_result($sql);} } ?>

mysql的类如下 cla Mysql { /** * mysql连接执行类,将sql的执行实现数据库无关性 *

where “.implode(” and * * */ /** * 类变量定义

* @param $conn mysql连接号 * @param $error 错误代号

* @param $username/$paword 数据库连接用户名和密码 * @param array $err_info 错误信息 * * @param $debuginfo 调试信息 * @param $table 当前操作数据表 */ var $conn;var $error;var $username = “”;var $paword = “”;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['paword']);$this->set_db($arr['database']);$this->set_conn();if(iet($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->paword=$pwd;} /** * 创建数据库连接 * @param * return void */ function set_conn(){

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

if(iet($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_aoc($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(iet($limit))$sql.=“select top $limit $col from $tb”;else $sql = “select $col from $tb”;if(iet($condition))$sql.=“ where $condition”;if(iet($order))$sql.=“ order by $order”;if(iet($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).“ ”,$conditions);} else $sql = “update `$tb` set $arr where $con”;//return $sql;return $this->get_result($sql);} }

where “.implode(” and

Acce数据库实验

实验一 ACCESS之表的操作一、实验目的1、熟悉Acce用户操作界面。2、掌握创建表的方法。3、掌握创建主键和索引的方法。4、掌握表结构的编辑和表中数据的操作方法。5、掌握建......

Acce数据库实验报告

注意事项:本手册上写的是题目的出处,但的实验本上,必须写上书上原本的题目,否则无效。并且写下每题实现的步骤。《Acce数据库》实验报告指导手册掌握选择查询、总记查询、在查询......

php生成随机数的三种方法

php生成随机数的三种方法(共5篇)由网友“闇夜”投稿提供,以下是小编为大家汇总后的php生成随机数的三种方法,欢迎参阅,希望可以帮助到有需要的朋友。篇1:php生成随机数的三种方法......

《数据库基础教案》acce

《数据库基础》教案(56学时)主讲: 专业: 班级:第1章 数据库系统概述(4学时)教学目标:了解数据库技术的发展史,了解每个阶段具有代表性的数据库管理系统的特点和划分依据,了解关系运算......

Acce数据库教案[材料]

《数据库原理及应用(Acce)》教案第一章 数据库基本原理教学目标:通过对数据库基本概念、数据系统的组成的讲解,让学生了解数据库技术;掌握层次模型、网状模型和关系模型的概念和......

下载php连接Acce数据库的三种方法word格式文档
下载php连接Acce数据库的三种方法.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文