PHP MDB 數(shù)據(jù)庫操作簡介
PHP MDB 是一個輕量級的 PHP 擴展,用于操作 Microsoft Access 數(shù)據(jù)庫。雖然和其他關系型數(shù)據(jù)庫比起來,Access 的使用率并不高,但是在某些情況下,Access 仍然是一些應用程序所必需的數(shù)據(jù)庫之一。本文將介紹如何使用 PHP MDB 在項目中對 Access 進行操作。
安裝 PHP MDB
首先我們需要在 PHP 中安裝 PHP MDB 擴展。可以通過以下兩種方式之一來實現(xiàn):
1. 從源代碼安裝
下載 mdbtools 和 libmdbodbc1 的源代碼,安裝它們,并運行以下命令:
```
phpize
./configure --with-php-config=php-config
make
sudo make install
```
2. 通過包管理器安裝
在 Ubuntu 下安裝 PHP MDB:
```
sudo apt-get update && sudo apt-get install php7.0-mdb2
```
在 CentOS 下安裝 PHP MDB:
```
sudo yum install php-mdb2
```
連接 Access 數(shù)據(jù)庫
連接 Access 數(shù)據(jù)庫和連接其他類型的數(shù)據(jù)庫其實是類似的。我們需要使用 PHP MDB 中的 mdb2_connect() 函數(shù),具體格式為:
```
$res = mdb2_connect(dsn, options);
```
dsn(Data Source Name)中包含了連接 Access 數(shù)據(jù)庫所需的信息,如何構建出一個 DSN 來連接 Access 呢?在 Windows 操作系統(tǒng)中,可以按照以下格式:
```
$dsn = 'odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq='.realpath($accessFilePath).';Uid=;Pwd=123';
```
如果 Access 數(shù)據(jù)庫受到保護,則需要提供連接密碼。
表的操作
表的創(chuàng)建
在 Access 數(shù)據(jù)庫中,我們可以通過 SQL 語句來創(chuàng)建一張表:
```
CREATE TABLE person (id INTEGER not null, name CHAR(50), PRIMARY KEY (id))
```
可以使用 mdb2_prepare() 函數(shù)來預處理 SQL 語句,再使用 mdb2_query() 函數(shù)來執(zhí)行 SQL 語句,實現(xiàn)對 Access 數(shù)據(jù)庫中表的創(chuàng)建。
表的插入
使用 SQL 語句,我們可以向 Access 數(shù)據(jù)庫中表中插入數(shù)據(jù):
```
INSERT INTO person (id, name) VALUES (1, 'Tom')
```
在使用 PHP MDB 操作 Access 數(shù)據(jù)庫時,我們可以也可以使用以下函數(shù)來實現(xiàn)表的插入:
```
$affectedRowsNum = mdb2_exec($res, 'INSERT INTO person (id, name) VALUES (1, 'Tom')');
```
表的查詢
查詢 Access 數(shù)據(jù)庫中表的數(shù)據(jù)是我們使用 PHP MDB 最常用的功能之一。以下是一個簡單的 SELECT 語句:
```
SELECT * FROM person
```
使用以下的 PHP MDB 的代碼可以實現(xiàn)對 Access 數(shù)據(jù)庫中某個表數(shù)據(jù)的查詢:
```
$ret = mdb2_query($res, 'SELECT * FROM person');
while ($row = $ret->fetchRow()) {
// Do something
}
```
表的修改
我們可以使用 SQL 語句來修改 Access 數(shù)據(jù)庫中表的數(shù)據(jù):
```
UPDATE person SET name = 'James' WHERE id = 1
```
在 PHP MDB 中,我們可以使用 mdb2_prepare() 和 mdb2_query() 函數(shù)預處理 SQL 語句,再將其執(zhí)行,實現(xiàn)表的修改:
```
$sql = "UPDATE person SET name = 'James' WHERE id = 1";
$stmt = mdb2_prepare($res, $sql);
$affectedRowsNum = mdb2_execute($stmt);
```
表的刪除
在 Access 數(shù)據(jù)庫中刪除表非常簡單,只需要使用 DROP TABLE 語句:
```
DROP TABLE person
```
使用 PHP MDB 去刪除 Access 數(shù)據(jù)庫中某個表,也非常的簡單:
```
$res = mdb2_exec($res, 'DROP TABLE person');
```
結束語
PHP MDB 是一個依賴于 ODBC 的 PHP 擴展,通過實現(xiàn) ODBC 原生的 API 來實現(xiàn)對 Microsoft Access 數(shù)據(jù)庫的操作。使用 PHP MDB 操作 Access 數(shù)據(jù)庫非常的簡單,只需要設置好連接,傳入 SQL 語句并執(zhí)行,就可以完成對 Access 數(shù)據(jù)庫的數(shù)據(jù)操作。
下一篇css大括號怎么打