PHP操作Access类(PHP+ODBC+Access)
<?php -------------------------------------------------------------------- //FileName:class.php //Summary: Access数据库操作类 //Author: forest //CreateTime: 2006-8-10 //LastModifed: //copyright (c)2006 //http://freeweb.nyist.net/~chairy //chaizuxue@163.com // 使用范例: //$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; } } ?>
<?php -------------------------------------------------------------------- //FileName:class.php //Summary: Access数据库操作类 //Author: forest //CreateTime: 2006-8-10 //LastModifed: //copyright (c)2006 freeweb.nyist.net/~chairy chaizuxue@163.com // 使用范例: //$database ="**.mdb"; //$dbuser ="**"; //$dbpwd ="**"; //$tablepre ="discuz_"; //$access=new Access($database,$dbuser,$dbpwd,$tablepre); //$query="SELECT * FROM ----" //$access->set_query($query); //$access->query(); -------------------------------------------------------------------- class Access{ var $databasepath; var $constr; var $dbusername; var $dbpassword; var $linkid; var $result; var $queryString; var $tablepre; //数据表前缀 function __construct($database,$dbuser,$dbpwd,$pre,$mode){ $this->databasepath=$database; $this->username=$dbuser; $this->password=$dbpwd; $this->tablepre=$pre; $this->connect($mode); } function Access($database,$dbuser,$dbpwd,$pre,$mode){ $this->__construct($database,$dbuser,$dbpwd,$pre,$mode); } function connect($mode=false){ $this->constr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" . realpath($this->databasepath); if($mode){ $this->linkid = odbc_pconnect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC); } else { $this->linkid = odbc_connect($this->constr,$this->username, $this->password,SQL_CUR_USE_ODBC); } return $this->linkid; } function set_query($sql) { $prefix="#@__"; $sql = trim($sql); $inQuote = false; $escaped = false; $quoteChar = ''; $n = strlen($sql); $np = strlen($prefix); $restr = ''; for($j=0; $j < $n; $j++) { $c = $sql{$j}; $test = substr($sql, $j, $np); if(!$inQuote) { if ($c == '"' || $c == "'") { $inQuote = true; $escaped = false; $quoteChar = $c; } } else { if ($c == $quoteChar && !$escaped) { $inQuote = false; } else if ($c == "\\" && !$escaped) { $escaped = true; } else { $escaped = false; } } if ($test == $prefix && !$inQuote) { $restr .= $this->tablepre; $j += $np-1; } else { $restr .= $c; } } $this->queryString = $restr; } function query($id="me"){ $this->result[$id] = @odbc_exec($this->linkid,$this->queryString); if(!$this->result[$id]) { $this->display_error("Execute Query False! <font color='red'>".$this->queryString."</font>"); } } function first_array($id="me"){ return odbc_fetch_array($this->result[$id]); } function fetch_row($id="me"){ return odbc_fetch_row($this->result[$id]); } function total_num($id="me"){//取得记录总数 return odbc_num_rows($this->result[$id]); } function close(){//关闭数据库连接函数 @odbc_close($this->linkid); $this->free_all_result(); } function free_result($id="me") { @mysql_free_result($this->result[$id]); } function free_all_result() { if(!is_array($this->result)) { return ""; } foreach($this->result as $kk => $vv){ if($vv) @odbc_free_result($vv); } } function insert($table,$field,$value){//插入记录函数 $sql="INSERT INTO {$table} ({$field}) VALUES ({$value})"; $this->set_query($sql); $this->query(); } function getinfo($table,$requirement,$limit){//取得当条记录详细信息 $sql="SELECT * FROM {$table} WHERE {$requirement}"; $this->set_query($sql); $this->query(); if($this->fetch_row()){ for ($i=1;$i<$limit;$i++){ $info[$i]=odbc_result($this->result["me"],$i); } } return $info; } function getlist($table,$field,$limit,$condition,$sort="ORDER BY id DESC"){//取得记录列表 $sql="SELECT * FROM ".$table." ".$condition." ".$sort; $this->set_query($sql); $this->query(); while ($this->fetch_row()){ $id=odbc_result($this->result["me"],1); $requirement="{$field}={$id}"; $recordlist[]=getinfo($table,$requirement,$limit); } return $recordlist; } function getfieldlist($table,$field,$fieldnum,$condition="",$sort=""){//取得记录列表 $sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort; $this->set_query($sql); $this->query(); while ($this->fetch_row()){ for ($j=0;$j<$fieldnum;$j++){ $info[$j]=odbc_result($this->result["me"],$j+1); } $rdlist[]=$info; } return $rdlist; } function updateinfo($table,$requirement,$set){//更新记录 $sql="UPDATE {$table} SET {$set} WHERE {$requirement}"; $this->set_query($sql); $this->query(); } function deleteinfo($table,$requirement){//删除记录 $sql="DELETE FROM {$table} WHERE {$requirement}"; $this->set_query($sql); $this->query(); } function deleterecord($table,$condition){//删除指定条件的记录 $sql="DELETE FROM ".$table." WHERE ".$condition; $this->set_query($sql); $this->query(); } function getcondrecord($table,$condition=""){// 取得指定条件的记录数 $sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition; $this->set_query($sql); $this->query(); $num=odbc_num_rows($this->result["me"]); return $num; } function display_error($msg) { echo "<html>\r\n"; echo "<head>\r\n"; echo "<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>\r\n"; echo "<title>DedeCms Error Track</title>\r\n"; echo "</head>\r\n"; echo "<body>\r\n<p style='line-helght:150%;font-size:10pt'>\r\n"; echo $msg; echo "<br/><br/>"; echo "</p>\r\n</body>\r\n"; echo "</html>"; } } ?>
收藏此文章 打印 更新 编辑此文章 『关闭窗口』