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
实验一 ACCESS之表的操作一、实验目的1、熟悉Acce用户操作界面。2、掌握创建表的方法。3、掌握创建主键和索引的方法。4、掌握表结构的编辑和表中数据的操作方法。5、掌握建......
注意事项:本手册上写的是题目的出处,但的实验本上,必须写上书上原本的题目,否则无效。并且写下每题实现的步骤。《Acce数据库》实验报告指导手册掌握选择查询、总记查询、在查询......
php生成随机数的三种方法(共5篇)由网友“闇夜”投稿提供,以下是小编为大家汇总后的php生成随机数的三种方法,欢迎参阅,希望可以帮助到有需要的朋友。篇1:php生成随机数的三种方法......
《数据库基础》教案(56学时)主讲: 专业: 班级:第1章 数据库系统概述(4学时)教学目标:了解数据库技术的发展史,了解每个阶段具有代表性的数据库管理系统的特点和划分依据,了解关系运算......
《数据库原理及应用(Acce)》教案第一章 数据库基本原理教学目标:通过对数据库基本概念、数据系统的组成的讲解,让学生了解数据库技术;掌握层次模型、网状模型和关系模型的概念和......