本文目錄一覽:
- 1、php 鏈接 .mdb數據庫,並讀取
- 2、php連接access的mdb數據庫出現問題,不知道是不是系統的問題
- 3、PHP註冊用戶連接到MDB數據庫
- 4、PHP連接access數據庫問題?
- 5、如何用php連接mdb數據庫?
- 6、PHP連接數據庫的幾種方法
php 鏈接 .mdb數據庫,並讀取
PHP和經典的ACCESS數據庫同樣能達到較好的效果,不過採用ODBC的方式來連接該access我個人不主張這樣做,因為現在虛擬機不可能提供odbc連接,推薦使用PHP的ADODB對象來連接該數據庫
php連接access的mdb數據庫出現問題,不知道是不是系統的問題
試試我的代碼
?PHP
/*
創建ADO連接
*/
$conn = @new COM(“ADODB.Connection”) or die (“ADO Connection faild.”);
$connstr = “DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=” . realpath(“Database1.accdb”);
$conn-Open($connstr);
/*
創建記錄集查詢
*/
$rs = @new COM(“ADODB.RecordSet”);
$rs-Open(“select * from dbo_dirs”,$conn,1,3);
/*
循環讀取數據
*/
while(!$rs-eof){
echo $rs-Fields[“title”]-Value;
echo “br/”;
$rs-Movenext(); //將記錄集指針下移
}
$rs-close();
?
PHP註冊用戶連接到MDB數據庫
個人猜測:去學PHP調用WORD的方法,然後用PHP調用MS的ACCESS來訪問~
PHP連接access數據庫問題?
找找連接ACCESS有兩種方式:odbc和com
1、odbc,目前你使用的是這種。
在“控制面板”中打開odbc32——進入“系統數據源”選項卡——點擊“添加”按鈕根據窗口信息將你的product.mdb設置成數據源。設置後需要重新啟動系統(win98)以使設置生效win
nt好象不要
2、com
此方式與asp中使用ACCESS一樣。由於同使用ADODB.Connection控件,連程序代碼都很接近
?php
$conn
=
new
com(“ADODB.Connection”);
$connstr
=
“DRIVER={Microsoft
Access
Driver
(*.mdb)};
DBQ=”
.
realpath(“netBook.mdb”);
$conn-Open($connstr);
$rs
=
new
com(“ADODB.RecordSet”);
$d
=
strtotime(“2003-03-11
07:52:57″);
//$rs-Open(“select
top
10
*
from
data
where
[date]#2003-03-11#”,$conn,1,1);
$rs-Open(“select
*
from
class”,$conn,1,1);
while(!
$rs-eof)
{
$f
=
$rs-Fields(3);
echo
$f-value.”br”;
//echo
$rs-Fields[“content”]-value.”br”;
//echo
$d.”
“.$rs-Fields[“date”]-type.”:”.$rs-Fields[“date”]-value.date(“Y-m-d
H:i:s”,$rs-Fields[“date”]-value).”br”;
$rs-MoveNext();
}
?
不需要配置php.ini
只要你服務器上面給你開好了ODBC連接
就可以用
odbc_connect()來連接
用odbc_exec()來執行SQL語句
如何用php連接mdb數據庫?
以下為幾個php連接access數據庫和操作acess數據的方法,全部做成了類,應用起來也更方便,也可摘用其中的部分代碼應用。
?php
——————————————————————–
//FileName:class.php
//Summary: Access數據庫操作類
// 使用範例:
//$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;$icount($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;
}
}
?
22222222
class.php文件:
[php]
?php
class Access//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)//從access數據庫中返回一個數組
{
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$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]
數據庫連接文件:
[php]
?php
$databasepath=”data/database.mdb”;//數據庫路徑
$dbusername=””;//數據庫用戶名
$dbpassword=””;//數據庫密碼
include_once(“class.php”);//調用數據庫操作類
$access=new Access($databasepath,$dbusername,$dbpassword);//新建一個數據庫操作類的對象
?
[/php]
[php]
?php
$sql=”select * from $info where id=$id”;
$result=$access-query($sql)or die(“error2”);
$array=odbc_fetch_array($result);
?
[/php]
333333333333
這個是為了 同時可以使用access和mysql而做的 先弄一個mysql的 然後又寫一個access的 所有的函數一一對應 你可以看下 絕對原創喔~~
配置文件如下
$config[‘db’][‘type’] = “Mysql”; //數據庫類型“Mysql”,“Access”
$config[‘db’][‘database’]= “ourcms”; //數據庫(文件)名
$config[‘db’][‘host’] = “”; //數據庫主機
$config[‘db’][‘username’]= “7king”; //數據庫連接用戶名
$config[‘db’][‘password’]= “tingting”; //數據庫連接密碼
/*
$config[‘db’][‘type’] = “Access”; //數據庫類型“Mysql”,“Access”
$config[‘db’][‘database’]= “ourcms.mdb”;//數據庫(文件)名
$config[‘db’][‘host’] = “”;
$config[‘db’][‘username’]= “”;
$config[‘db’][‘password’]= “”;
?php
/**
* 2007.04 by zhaohe
*
* php連接access通用類
*
* 用法:
* 建立new Access類 = set_db設置數據路徑 = set_login 設置連接數據庫的用戶名和密碼
* = 通過set_conn 設置連接 =
* {
get_result 獲取查詢執行結果; get_result_rows 獲取查詢執行列表,一般是select
insert_info 插入新的記錄 update_info更新記錄
}
*
*
*/
class Access {
/**
* 類變量定義
* @param $conn mysql連接號
* @param $error 錯誤代號
* @param $username/$password 數據庫連接用戶名和密碼
* @param array $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();
}
}
/**
* 設置數據庫文件名
* @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-password=$pwd;
}
/**
* 創建數據庫連接
* @param
* return void
*/
function set_conn ( ){
if($this-conn=odbc_connect(“DRIVER=Microsoft Access Driver (*.mdb);DBQ=”.realpath($this-database),$this-username,$this-password,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( isset($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).” where “.implode(” and “,$conditions);
//return $sql;
return $this-get_result( $sql );
}
}
?
mysql的類如下
class Mysql {
/**
* mysql連接執行類,將sql的執行實現數據庫無關性
*
*
*
*/
/**
* 類變量定義
* @param $conn mysql連接號
* @param $error 錯誤代號
* @param $username/$password 數據庫連接用戶名和密碼
* @param array $err_info 錯誤信息
*
* @param $debuginfo 調試信息
* @param $table 當前操作數據表
*/
var $conn;
var $error;
var $username = “”;
var $password = “”;
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[‘password’] );
$this-set_db( $arr[‘database’] );
$this-set_conn();
if( isset($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-password=$pwd;
}
/**
* 創建數據庫連接
* @param
* return void
*/
function set_conn (){
$this-conn=mysql_connect($this-host,$this-username,$this-password );
if ( isset($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_assoc( $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( isset($limit) )
$sql.=”select top $limit $col from $tb”;
else
$sql = “select $col from $tb”;
if( isset($condition) ) $sql.=” where $condition”;
if( isset($order) ) $sql.=” order by $order”;
if( isset($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).” where “.implode(” and “,$conditions);
}
else
$sql = “update `$tb` set $arr where $con”;
//return $sql;
return $this-get_result( $sql );
}
}
PHP連接數據庫的幾種方法
用ASP連接各種數據庫的方法
一、ASP的對象存取數據庫方法
在ASP中,用來存取數據庫的對象統稱ADO(Active Data Objects),主要含有三種對象:Connection、Recordset 、Command
Connection:負責打開或連接數據
Recordset:負責存取數據表
Command:負責對數據庫執行行動查詢命令
二、連接各數據庫的驅動程序
連接各數據庫可以使用驅動程序,也可以使用數據源,不過我建議大家使用驅動程序,因為使用驅動程序非常方便、簡單,而使用數據源比較麻煩。
ODBC鏈接
適合數據庫類型 鏈接方式
access “Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;”
dBase “Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=————;”
Oracle “Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;”
MSSQL server “Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;”
MS text “Driver={microsoft text driver(*.txt; *.csv)};dbq=—–;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;”
Visual Foxpro “Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;”
MySQL “Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;”
OLEDB鏈接
適合的數據庫類型 鏈接方式
access “Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;”
Oracle “Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;”
MS SQL Server “Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;”
MS text “Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties′text;FMT=Delimited′”
而我們在一般情況下使用Access的數據庫比較多,在這裡我建議大家連接Access數據庫使用下面的方法:
dim conn
set conn = server.createobject(“adodb.connection”)
conn.open = “provider=microsoft.jet.oledb.4.0;” “data source = ” server.mappath(“../db/bbs.mdb”)
其中../db/bbs.mdb是你的數據庫存放的相對路徑!如果你的數據庫和ASP文件在同一目錄下,你只要這樣寫就可以了:
dim conn
set conn = server.createobject(“adodb.connection”)
conn.open = “provider=microsoft.jet.oledb.4.0;” “data source = ” server.mappath(“bbs.mdb”)
有許多初學者在遇到數據庫連接時總是會出問題,然而使用上面的驅動程序只要你的數據庫路徑選對了就不會出問題了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/153731.html