虛擬主機常需額外付費購買 MySQL,Access 檔案式資料庫成為免費替代方案。但 PHP 原生對不同資料庫的操作函數完全不同,維護困難。ADODB 提供統一介面,只需更改驅動名稱即可切換資料庫。
$db = mysql_connect("localhost", "root", "password");
mysql_select_db("mydb", $db);
$result = mysql_query("SELECT * FROM employees", $db);
if ($result === false) die("failed");
while ($fields = mysql_fetch_row($result)) {
for ($i = 0, $max = sizeof($fields); $i < $max; $i++) {
print $fields[$i] . ' ';
}
print "<br>\n";
}
include("adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect("localhost", "root", "password", "mydb");
$result = $db->Execute("SELECT * FROM employees");
if ($result === false) die("failed");
while (!$result->EOF) {
for ($i = 0, $max = $result->FieldCount(); $i < $max; $i++) {
print $result->fields[$i] . ' ';
}
$result->MoveNext();
print "<br>\n";
}
只需將驅動名稱改為 'access',並使用 DSN 連線字串:
<?php
include("adodb/adodb.inc.php");
$db = ADONewConnection('access');
$dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=d:\\self\\myphp\\book.mdb;Uid=;Pwd=;";
$db->Connect($dsn);
$result = $db->Execute("SELECT * FROM data");
if ($result === false) die("failed");
while (!$result->EOF) {
for ($i = 0, $max = $result->FieldCount(); $i < $max; $i++) {
print "<div style='border:1px solid #000000;'>" . $result->fields[$i] . "<br />";
}
$result->MoveNext();
}
?>
ADODB 下載:https://phplens.com/phpeverywhere/