ODBC(Open Database Connectivity)是一種開放式的數(shù)據(jù)庫(kù)連接技術(shù),它可以連接幾乎所有類型的主流數(shù)據(jù)庫(kù)。使用PHP作為服務(wù)端語(yǔ)言,我們可以通過(guò)ODBC來(lái)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接,并進(jìn)行數(shù)據(jù)的讀取、寫入、更新等操作。下面將簡(jiǎn)單介紹如何使用ODBC連接PHP,以MySQL為例。
首先,需要在PHP的配置文件php.ini中開啟ODBC擴(kuò)展。找到php.ini文件,將以下代碼前的分號(hào)去掉即可:
extension=php_odbc.dll
然后,我們需要用ODBC的驅(qū)動(dòng)程序去連接MySQL數(shù)據(jù)庫(kù)。根據(jù)實(shí)際情況選擇合適的驅(qū)動(dòng)程序,并在PHP代碼中通過(guò)dsn連接MySQL服務(wù)器:
$conn = odbc_connect("dsn=mysqlodbc", "username", "password");
"dsn=mysqlodbc"用于指定數(shù)據(jù)源名稱(DSN),這個(gè)DSN在配置ODBC數(shù)據(jù)源時(shí)設(shè)置。
接下來(lái),可以使用odbc_exec()函數(shù)執(zhí)行SQL語(yǔ)句。比如,下面的代碼演示如何查詢MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù):
$res = odbc_exec($conn, "select * from users"); while($data = odbc_fetch_array($res)){ echo "Name: " . $data['name'] . "
"; echo "Age: " . $data['age'] . "
"; echo "Sex: " . $data['sex'] . "
"; }
這里的odbc_fetch_array()函數(shù)用于獲取數(shù)據(jù)行,并將其返回為關(guān)聯(lián)數(shù)組。
還可以使用odbc_prepare()函數(shù)準(zhǔn)備SQL語(yǔ)句,并使用odbc_execute()函數(shù)執(zhí)行語(yǔ)句。這樣可以避免SQL注入等安全問(wèn)題。比如:
$sql = "insert into users(name, age, sex) values(?, ?, ?)"; $stmt = odbc_prepare($conn, $sql); $name = "John"; $age = 25; $sex = "male"; odbc_execute($stmt, array($name, $age, $sex));
這里使用了odbc_prepare()函數(shù)對(duì)SQL語(yǔ)句進(jìn)行了預(yù)處理,然后使用odbc_execute()函數(shù)執(zhí)行語(yǔ)句。注意,參數(shù)用?占位符表示,然后將實(shí)際參數(shù)傳入odbc_execute()函數(shù)中。
當(dāng)然,ODBC不僅可以連接MySQL數(shù)據(jù)庫(kù),還可以連接Oracle、SQL Server、Access等主流數(shù)據(jù)庫(kù)。只要安裝好ODBC驅(qū)動(dòng)程序,配置好數(shù)據(jù)源,使用PHP連接各種數(shù)據(jù)庫(kù)就非常容易了。