首頁 >後端開發 >php教程 >dob Adodb的十個實例清晰版

dob Adodb的十個實例清晰版

WBOY
WBOY原創
2016-07-29 08:35:53902瀏覽

本想學pear的,可是網路上看到的幾篇貼文對adodb的評價相當高,所以改學了這篇。
ADODB的優點有這幾個(網上說的,不是我說的): 
1、速度比pear快一倍; 
2、支援的資料庫類型比pear多很多,甚至可以支援ACCESS; 
3、無須安裝,無須伺服器支援(對新手來說,這點很重要吧) 
不知道adodb是什麼或是想下載adodb的朋友可以去這個連結看看:http:/ /www.phpe.net/class/106.shtml  
另外,如果哪位兄弟翻譯了README的全文或知道哪裡有譯文請給我回個帖,謝謝。
Tutorial  
Example 1: Select Statement  
任務: 連接一個名為Northwind的Access資料庫, 顯示 每個記錄  (ADOConnection)物件, 並用它來連接一個資料庫. 這個連接採用PConnect 方法, 這是一個持久 連接. 當我們要查詢資料 庫時, 我們可以隨時調 用這個連接的Execute()函數. 它會傳回一個ADORecordSet物件 which is actually a cursor that holds the current row in the array fields[]. 我們使用MoveNext()從一個記錄轉向下一個記錄 . , 它可以控制顯示的記錄數(如只顯示前十筆記錄 ,可用作分頁顯示 ).  
PHP:---------------------- -------------------------------------------------- -------- 
  
include('adodb.inc.php'); #載入ADOdb  
$conn = &ADONewConnection('access'); >$conn->PConnect('northwind'); # 連接到一個名為northwind的MS-Access資料庫  
$recordSet = &$conn->Execute('select * from products');中搜尋所有資料  
if (!$recordSet)  
print $conn->ErrorMsg(); //若資料搜尋發生錯誤顯示錯誤訊息  
) {  
print $recordSet->fields[0].' '.$recordSet->fields[1].'
';  
$recordSet->MoveNext(); //指向下一個記錄
} //清單顯示資料  
$recordSet->Close(); //可選  
$conn->Close(); //可選  
?> 
--- -------------------------------------------------- --------------------------- 
$recordSet在$recordSet->fields中傳回目前陣列, 對欄位進行數字索引(從0開始). 我們用MoveNext() 函數移動到下一個記錄 . 當資料庫搜尋到結尾時EOF property被 設定 為true. 如果Execute()發生錯誤 , recordset回傳flase.  
$recordSet-ds[]數組產生於PHP的資料庫擴充。有些資料庫擴充只能按數字索引而不能按欄位名稱索引.如果堅持要使用欄位名稱索引,則應採用SetFetchMode函數.無論採用哪種格式索引,recordset都可以由Execute()或SelectLimit()建立。
PHP:--------------------------------------------- ----------------------------------- 
$db->SetFetchMode(ADODB_FETCH_NUM);  
$rs1 = $db->Execute('select * from table'); //採用數位索引  
$db->SetFetchMode(ADODB_FETCH_ASSOC);  
$rs table'); //採用欄位名稱索引  
print_r($rs1->fields); # shows array([0]=>'v0',[1] =>'v1')  
print_r($ rs2->fields); # shows array(['col1']=>'v0',['col2'] =>'v1')------------------ -------------------------------------------------- ------------ 
如果要取得記錄號碼,你可以使用$recordSet->RecordCount()。如果沒有當前記錄則傳回-1。
實例 2: Advanced Select with Field Objects  
搜尋表格,顯示前兩個欄位. 如果第二個欄位是時間或日期格式,則將其改為美國標準時間格式顯示.  
PHP: -------------------------------------------------- ------------------------------ 
  
include('adodb.inc.php'); / //載入adodb  
$conn = &ADONewConnection('access'); //新建一個連接  
$conn->PConnect('northwind'); //連接名為northwind的MS-AccessAccess 🎠 >$recordSet = &$conn->Execute('select CustomerID,OrderDate from Orders'); //從Orders表搜尋CustomerID和OrderDate兩個欄位  
if(!$recordSetSet)! >ErrorMsg(); //如果資料庫搜尋錯誤,顯示錯誤訊息  
else  
while (!$recordSet->EOF) {  
$fld = $recordSet->第二個欄位賦值給$fld  
$type = $recordSet->MetaType($fld->type); //取欄位值的格式  
if ( $type == 'D'  
if ( $type == == 'T')  
print $recordSet->fields[0].' '.  
$recordSet->UserDate($recordSet->fields[1],'m/d/Y').'
'; //若欄位格式為日期或時間型,使其以美國標準格式輸出  
else  
print $recordSet->fields[0].' '.$recordSet->fields[1 ].'
'; //否則以原樣輸出  
$recordSet->MoveNext(); //指向下一個記錄  
}  
$recordSet->Close(); ////可選
$conn->Close(); //選購  
?>  
--------------------------- -------------------------------------------------- --- 
在這個例子裡, 我們用FetchField()函數檢查了第二個字段的格式. 它返回了一個包含三個變量的對象  
name: 字段名  
type: 字段在其資料庫中的真實格式  
max_length:欄位最大長度,部分資料庫不會回傳這個值,比如MYSQL,這種情況下max_length值等於-1.  
我們使用MetaType()把欄位的資料庫格式轉換為標準的字段格式  
C: 字符型字段,它應該可以在標籤下顯示.  
X: 文本型字段,存放比較大的文本,一般作用於

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn