第一种方法:
//读取mdb数据库的值,创建ADO连接 $username=1; $conn=new com(\"ADODB.Connection\"); $connstr=\"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\". realpath(\"web.mdb\");//Access数据库地址 $conn->Open($connstr); //创建记录集 $rs=new com(\"ADODB.RecordSet\"); $assql=\"select * from sail_about where id=\".$username.\"\"; $rs->Open($assql,$conn,1,1);//打开数据库 if(! $rs->eof){ echo \"<br><b>\".$rs[\"title\"].\":</b> \"; exit; }else{ echo \"<br>ACCESS查询成功\"; } //循环读取数据 while(!$rs->eof){ echo $rs->fields[\'G_date\']->Value; echo \'\'; $rs->movenext();//将记录集指针下移 } $rs->close();//关闭数据库
(2)第二种方法:
//用odbc_connect函数连接access数据库$connstr=\"DRIVER=Microsoft Access Driver (*.mdb);DBQ=\".realpath(\"web.mdb\"); $conn=odbc_connect($connstr,\"\",\"\",SQL_CUR_USE_ODBC ); $query=odbc_do($conn,\"select * from sail_about\"); while(odbc_fetch_row($query)){ for($i=0;$i<2;$i++){ //$i<2 2值是sail_about 表里的值数 echo $record[$i] = odbc_result($query,$i+1); } echo \"<br>\"; }PHP连接Access数据库的类:
/** *2007.04byzhaohe * *php连接access通用类 * *用法: *建立newAccess类=>set_db设置数据路径=>set_login设置连接数据库的用户名和密码 *=>通过set_conn设置连接=> *{ get_result获取查询执行结果;get_result_rows获取查询执行列表,一般是select insert_info插入新的记录update_info更新记录 } */ class Access{ /** *类变量定义 *@param$connmysql连接号 *@param$error错误代号 *@param$username/$password数据库连接用户名和密码 *@paramarray$err_info错误信息 * *@param$debuginfo调试信息 *@param$table当前操作数据表 */ var$conn; var$error; var$database; var$username=\"\"; var$password=\"\"; var$err_info=array( 0=>\"没有错误!\", 1=>\"数据库连接失败!\", 2=>\"sql执行出错!\" ); var$debuginfo=\"\"; var$table; /** *默认构造方法 **/ function Access($arr=null){ if(is_array($arr)){ $this->set_login($arr[\'host\'],$arr[\'username\'],$arr[\'password\']); $this->set_db($arr[\'database\']); $this->set_conn(); } } /** *设置数据库文件名 *@paramstring$dbfile * *return void */ function set_db($dbfile){ $this->database=$dbfile; } /** *设置连接数据库的用户名和密码 *@paramstring$user用户名 *@paramstring$pwd密码 * *@return void */ function set_login($user,$pwd){ $this->username=$user; $this->password=$pwd; } /** *创建数据库连接 *@param *return void */ function set_conn(){ if($this->conn=odbc_connect(\"DRIVER=MicrosoftAccessDriver(*.mdb);DBQ=\".realpath($this->database),$this->username,$this->password,SQL_CUR_USE_ODBC)){ $this->error=0; }else{ $this->error=1; } } /** *设置当前操作的数据表 *@paramstring$tb * *@return void */ function set_table($tb){ $this->table=$tb; } /** *返回sql查询结果 *@paramstring$sqlsql语句 * *@return #id */ function get_result($sql){ return odbc_do($this->conn,$sql); } /** *获取查询的结果 *@paramstring$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; } /** *获取部分查询结果 * *@paramArray数组 *@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$colfrom$tb\"; }else{ $sql=\"selecttop$limit$colfrom$tb\"; } if(isset($order)){ $sql.=\"orderby$order\"; } return $this->get_result_rows($sql); } /** *执行数据库插入操作 * *@param$arrvalues列表,数组索引为数据表字段 *@param$tb操作数据表如果为空则为设置的当前类的操作表 */ function insert_info($arr,$tb=\"\"){ $cols=array_keys($arr); $values=array_values($arr); if(empty($tb)){ $tb=$this->tb; } $sql=\"insertinto[$tb]([\".implode(\"],[\",$cols).\"])values(\'\".implode(\"\',\'\",$values).\"\')\"; return $this->get_result($sql); } /** *执行数据库更新操作 * *@paramarray$arr要更新的字段值数组索引为表字段名 *@paramarray$con条件数组 *@paramstring$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).\"where\".implode(\"and\",$conditions); return $this->get_result($sql); } }