Apr
28
2016
php access 数据库类
<?php if (! defined ( 'APPINC' )) exit ( "Request Error!" ); /** * 数据库类 * 说明:系统底层Access数据库核心类 */ /** * * Db_Access数据库类 * */ class Db_Access{ var $dataPath; var $constr; var $dbusername; var $dbpassword; var $link; var $results; var $result; var $QueryString; function __construct($dataPath,$dbusername,$dbpassword) { $this->Db_Access($dataPath,$dbusername,$dbpassword); } function Db_Access($dataPath,$dbusername,$dbpassword){ $this->dataPath=$dataPath; $this->username=$dbusername; $this->password=$dbpassword; $this->Connect(); } function Connect(){ $this->constr='DRIVER={Microsoft Access Driver (*.mdb)};DBQ='.realpath($this->dataPath).';'; $this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC); if(!$this->link) die ("数据库连接失败!"); return $this->link; } //设置SQL语句,会自动把SQL语句里的#@__替换为$this->dbPrefix(在配置文件中为$cfg_dbprefix) function SetQuery($sql) { $GLOBALS['last_sql']=$sql; $this->queryString = $sql; } //Query 直接运行SQL,可用于更新、删除数据 function Query($sql){ return @odbc_exec($this->link,$sql); } //执行一个带返回结果的SQL语句,如SELECT,SHOW等 function Execute($sql="",$id = "this"){ if (! empty ( $sql )) { $this->SetQuery ( $sql ); } $this->result = odbc_exec($this->link,$this->queryString); $this->results [$id] = &$this->result; } //执行一个不返回结果的SQL语句,如update,delete,insert等 function ExecNoneQuery($sql){ $this->Execute($sql); return $this->result; } // 执行带返回结果的sql 返回影响到的行的数目 function ExecNoneQuerys($sql){ $this->Execute($sql); return @odbc_num_rows($this->result); } //执行一个SQL语句,返回前一条记录或仅返回一条记录 function GetOne($sql) { $this->Execute($sql); return odbc_fetch_array($this->result); } //取得当前指针处记录 function GetArray($id = "this"){ if ($this->results [$id] == 0) { return FALSE; } else { return @odbc_fetch_array( $this->results [$id]); } } //关闭数据库连接函数 function close(){ odbc_close($this->link); } } /* $dataPath='./data.mdb'; $dbusername=''; $dbpassword=''; $access=new Db_Access($dataPath,$dbusername,$dbpassword); $sql="SELECT TOP 1 * FROM `huifang`;"; //获取单条信息 $row=$access->GetOne($sql); var_dump($row); //循环遍历数据 $access->Execute ($sql); while ($row=$access->GetArray()){ var_dump($row); } //执行一个不返回结果的SQL语句,如update,delete,insert等 $access->ExecNoneQuery("INSERT INTO `huifang` (`nrid`,`hfsj`) VALUES ('55791','2016-04-25 17:21:20');"); //执行带返回结果的sql var_dump($access->ExecNoneQuerys("INSERT INTO `huifang` (`nrid`,`hfsj`) VALUES ('55791','2016-04-25 17:21:20');")); */ ?>
最活跃的读者