1. 程式人生 > >php連線Access資料庫的三種方法

php連線Access資料庫的三種方法

php.ini中加上extension=php_com_dotnet.dll
因為php5.4以後就不內嵌com了。

提供已知的幾種連線方式:

1.
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("test.mdb");
$conn->Open($connstr);

2.
$conn=new com("ADODB.connection");
$connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".realpath("test.mdb");
$conn->open($connstr);

3.
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

在ThinkPhp的controller中由於存在名稱空間,所以要使用“$conn = new \com("ADODB.Connection");” 

$rs=new com('adodb.recordset');
$rs->Open('SELECT * FROM 資料表名',$conn,1,1);

$rs->PageSize=50;
$page=1;
if(!empty($_GET['page'])){
$page=$_GET['page'];
if($page<1)$page=1;
if($page>$rs->PageCount)$page=$rs->PageCount;
}
$rs->AbsolutePage=$page;

echo '<table width="100%"><tr>';
foreach( $rs->Fields as $name){
echo '<td>'.$name->Name.'</td>';
}
echo '</tr>';
for(;!$rs->EOF;$rs->MoveNext()){
echo '<tr>';
foreach( $rs->Fields as $name){
echo '<td>'.$name.'</td>';
}
echo '</tr>';
if($rs->AbsolutePosition>=$rs->AbsolutePage*$rs->PageSize)break;
}
echo '</tale>';
for($i=0;$i<$rs->PageCount;$i++){
echo '<a href="index.php?page='.($i+1).'"> '.($i+1).' </a>';
}