A-A+
php操作access数据库类
在开发 PHP 程序时,我们基本上都会选择 Mysql 作为网站数据库的,因为众所周知,Mysql 是 PHP 的黄金搭档,使用 Mysql 无论是在性能上,还是在安全上,绝对是独一无二的。
当然,因为 PHP 的开源和扩展性,PHP 所支持的数据库不仅仅只有 Mysql,它支持几乎所有的网站数据库,有的时候,我们使用别的数据库,可能在性价比上会更好一点,在小型的网站应用中就可以使用 Access 数据库,甚至可以直接使用 TXT 文本作为数据库,这样可以节省购买数据库的成本,而且在管理上也非常方便。
下面是一个 PHP 操作 Access 数据库的类,囊括了最基本的 PHP 操作 Access 数据库的方法,除了简单的类构造和销毁等方法,还包括了 Access 数据库的增删改查等常用功能,下面是源代码:
<?php class mdbclass{ public $mdbpath;//数据库名称 public $mdbuser;//数据库登录用户名 public $mdbpass;//数据库登录密码 public $conn; public $debug = false;//是否启用调试 //类的构造 function __construct($name,$user='',$pass=''){ $this->mdbpath=$name; $this->mdbuser=$user; $this->mdbpass=$pass; $this->conn = new com('ADODB.Connection'); $connstr='DRIVER={Microsoft Access Driver (*.mdb)}; DB Q='.realpath($this->mdbpath).';password='.$this->mdbpass.';Us er ID='.$this->mdbuser.''; try{ $this->conn->Open($connstr); }catch(Exception $e){ die($e->getMessage()); } } //类的销毁 function __destruct(){ $this->close(); } function fileexi($mdbpath){ $path=$mdbpath; if(!file_exists($mdbpath)){ $path= '../'.$mdbpath.''; } return $path; } function close(){ $this->conn->close(); } function query($sql){ try{ return $this->conn->execute($sql); }catch(Exception $e){ die('执行有误:'.$sql.''); } } function getone($table,$where,$fields='*'){//获取某一行 $sql='select top 1 '.$fields.' from `'.$table.'` wher e '.$where.''; $rs=$this->query($sql); if(!$rs->eof){ for($i=0;$i<$rs->fields->count;$i++){ $arrv[$rs->fields[$i]->name]=$rs->fields[$i]->v alue; } $rs->close(); return $arrv; }else{ return false; } } function getmou($table,$fields,$where){ $sql='select `'.$fields.'` from `'.$table.'` where '.$w here.''; $rs=$this->query($sql); if(!$rs->eof){ return $rs[0]->value; }else{ return false; } } function getall($sql,$n=''){ $rs=$this->query($sql); $arr=array();$c=0; if(!$rs->eof){ while(!$rs->eof){ if($n!=''){if($c>=$n)break;} for($i=0;$i<$rs->fields->count;$i++){ $arrv[$rs->fields[$i]->name]=$rs->fields[$i]->v alue; } $arr[]=$arrv; $rs->movenext; $c++; } $rs->close(); } return $arr; } function rows($table,$where,$rowtype='count(*)'){ $sql='select '.$rowtype.' from `'.$table.'` where '.$where.''; $rs=$this->query($sql); if(!$rs->eof){ $val=$rs[0]->value; $rs->close(); return $val; }else{ return false; } } function insert($table,$fields,$values){//插入数据 $sql="insert into `".$table."`(".$fields.")values(".$values.")"; return $this->query($sql); } function update($table,$content,$where){//更新 $sql="update `".$table."` set ".$content." where ".$where." "; return $this->query($sql); } function delete($table,$where){//删除操作 $sql="delete from `".$table."` where ".$where." "; return $this->query($sql); } function getalltable(){ //返回所有数据库的表 $rs=$this->conn->OpenSchema(20); while(!$rs->eof){ if($rs[3]=='TABLE'||$rs[3]=='VIEW'){ $arrd[]=$rs[2]->value; } $rs->movenext; } $rs->close(); return $arrd; } function getallfields($table){ //返回表所有字段 $sql='select * from `'.$table.'`'; $rs=$this->query($sql); for($i=0;$i<$rs->fields->count;$i++){ $arr[]=$rs->fields[$i]->name; } $rs->close(); return $arr; } function getlimit($sql,$page,$fen=25){//分页 $rs = new com("ADODB.RecordSet"); $rs->Open($sql,$this->conn,3,1); $fen=intval($fen);$page=intval($page); $arr=array(); $zong=$rs->recordcount; if(!$rs->eof&&$zong>=0){ $rs->pagesize=$fen; $max=$rs->pagecount; if($page<=0)$page=1; if($page>$max)$page=$max; $rs->absolutepage=$page; for($t=1;$t<=$fen;$t++){ for($i=0;$i<$rs->fields->count;$i++){ $arrv[$rs->fields[$i]->name]=$rs->fields[$i]->value; } $arr[]=$arrv; $rs->movenext; if($rs->eof)break; } $rs->close(); } return $arr; } } define('mdbpath','数据库路径.mdb'); $mdb=new mdbclass(mdbpath,'管理','数据库密码');//链接数据库 ?>
TXT很霸气!
.txt 怎么做?求指教。
txt 的直接用操作文本函数进行操作。
主要看什么类型的服务器,什么样的服务器就搭什么样的数据库,PHP只是个壳。
我博客就是这个数据库