標籤:
php操作資料庫有很多種方式,如mysql,mysqli,odbc,pdo等。MySQL 是 PHP 操作 MySQL 資料庫最原始的 Extension。MySQLi 的 i 代表 Improvement ,提供了相對進階的功能,就 Extension 而言,本身也增加了安全性,這都只是操作特定種類的資料庫的,當你更換其他類型的資料庫時又得使用其他類型資料庫的操作方法來操作資料庫,也就是得重寫代碼,這是很麻煩的。有沒有一種方法可以是通用型的,使得可以一次編寫多次使用,相容各種資料庫呢?答案當然是肯定的,那就是obbc以及pdo了。pdo是php 5新出的用來操作各種資料庫的擴充,是專屬於php的,就類似於Java的jdbc。這個後面再講。現在先講一講odbc。
什麼是ODBC?
ODBC 是一個軟體驅動程式系統,用於串連程式設計語言與資料存放區。ODBC 是一個免費的開放源碼系統,出現於 1992 年,它試圖通過程式設計語言和資料庫查詢訪問(SQL 標準化)來標準化串連方法,比如功能和配置。
ODBC 的作用是充當介面或連接器,它具有雙重設計目標:首先,對於 ODBC 系統,它充當的是程式設計語言系統,其次,對於資料存放區系統,它充當的是 ODBC 系統。所以,ODBC 需要一個 “對 ODBC 而言是程式設計語言” 的驅動程式(例如 PHP-ODBC 庫)和一個 “對資料存放區系統而言是 ODBC” 的驅動程式(比如 MySQL-ODBC 庫)。除了 ODBC 系統本身之外,ODBC 還可以處理資料來源的配置,允許資料來源和程式設計語言之間存在模糊性。
怎麼使用odbc?
當使用odbc時, PHP 開發變得 “與資料庫連接器無關”。它對資料庫(比如 MySQL、PostgreSQL、SQLite、Microsoft SQL Server®、IBM® DB2®、Sybase、OpenLink Virtuoso、FileMaker 和 Microsoft Office® Access®)使用像 odbc_query() 這樣的函數。還可以將 ODBC 用於 CSV 和 Excel 試算表,具體取決於正確的 ODBC 驅動程式設定。下面看看怎麼使用:
1.首先odbc擴充並開啟,通過phpinfo()查看到該模組並且狀態為enabled;
2.串連到 ODBC
odbc_connect() 函數用於串連到 ODBC 資料來源。該函數有四個參數:資料來源名、使用者名稱、密碼以及可選的指標類型。
odbc_exec() 函數用於執行 SQL 陳述式。
3.取回記錄
//odbc_fetch_row() 函數用於從結果集中返回記錄。如果能夠返回行,則函數返回 true,否則返回 false。
//該函數有兩個參數:ODBC 結果標識符和可選的行號:
odbc_fetch_row($rs)
4.從屬記錄中取回欄位
odbc_result() 函數用於從屬記錄中讀取欄位。該函數有兩個參數:ODBC 結果標識符和欄位編號或名稱。 下面的程式碼從屬記錄中返回第一個欄位的值: $compname=odbc_result($rs,1);
下面的程式碼返回名為 "CompanyName" 的欄位的值:
$compname=odbc_result($rs,"CompanyName");
5.關閉 ODBC 串連
odbc_close() 函數用於關閉 ODBC 串連。 odbc_close($conn);
註:其他動作函數:http://php.net/manual/zh/ref.uodbc.php
ODBC 執行個體
下面的執行個體展示了如何首先建立一個資料庫連接,接著建立一個結果集,然後在 HTML 表格中顯示資料。
<html><body><?php$conn=odbc_connect(‘northwind‘,‘‘,‘‘);if (!$conn){
exit("Connection Failed: " . $conn);} $sql="SELECT * FROM customers"; $rs=odbc_exec($conn,$sql); if (!$rs){
exit("Error in SQL");} echo "<table><tr>"; echo "<th>Companyname</th>"; echo "<th>Contactname</th></tr>"; while (odbc_fetch_row($rs)){ $compname=odbc_result($rs,"CompanyName"); $conname=odbc_result($rs,"ContactName");
echo "<tr><td>$compname</td>"; echo "<td>$conname</td></tr>"; } odbc_close($conn); echo "</table>";?></body></html>
odbc串連資料庫