ADODB入門基礎(chǔ)" />
以前總是在水區(qū)混啊!沒有發(fā)表什么文章!這次把自己以前寫得文章給大家曬曬!呵呵老鳥不要看了!
ADODB 是 Active Data Objects Data Base 的簡(jiǎn)稱,它是一種php存取數(shù)據(jù)庫(kù)的中間函式組件。
使用 ADODB 最大的優(yōu)點(diǎn)之一是:不管后端數(shù)據(jù)庫(kù)如何,存取數(shù)據(jù)庫(kù)的方式都是一致的,開發(fā)設(shè)計(jì)人員不必為了某一套數(shù)據(jù)庫(kù),而必須再學(xué)習(xí)另一套不同的存取方法,這大大減輕開發(fā)人員的知識(shí)負(fù)擔(dān),過去的知識(shí)往后仍可繼續(xù)使用,轉(zhuǎn)移數(shù)據(jù)庫(kù)平臺(tái)時(shí),程序代碼也不必做太大的更動(dòng)。
這些是以前學(xué)習(xí)總結(jié)的一些例子!
復(fù)制PHP內(nèi)容到剪貼板
PHP代碼:
<?php
include_once("libs/adodb/adodb.inc.php"); //包含adodb的文件
$db = NewADOConnection("MySQL"); //建立哪個(gè)數(shù)據(jù)庫(kù)的對(duì)象
$db->Connect("localhost", "root", "root", "mysql") or die("Unable to connect!"); //鏈接數(shù)據(jù)庫(kù)
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; //給全局變量賦值,表示下面可以弄關(guān)聯(lián)數(shù)組(我的語(yǔ)言不怎么樣)
$query = "SELECT * FROM user";
$result = $db->Execute($query) or die("Error in query: $query. " . $db->ErrorMsg());//(Execute執(zhí)行SQL)
while (!$result->EOF) {
echo $result->fields['use'] . " - " . $result->fields['pass'] . "/n";
$result->MoveNext();//movenext()數(shù)組向下移。
}//fields表示字段數(shù)組
echo "/n[" . $result->RecordCount() . " 行記錄被返回]/n";
$db->Close();//關(guān)閉鏈接
?>
這個(gè)例子是ADODB最簡(jiǎn)單的數(shù)據(jù)庫(kù)操作!或者大家可以寫個(gè)類來操作??!
在adodb中提供3個(gè)函數(shù),GetAll,GetOne,GetRow.
GetAll其實(shí)相當(dāng)于execute,但是返回是2維數(shù)組。可以和SMARTY很好的操作。
GetOne,GetRow.是判讀數(shù)據(jù)庫(kù)的某個(gè)數(shù)據(jù)是否存在!
在ADODB中提供了SelectLimit這個(gè)函數(shù)!
因?yàn)樵谵D(zhuǎn)移數(shù)據(jù)庫(kù)的時(shí)候可能有些SQL語(yǔ)句不支持!ADODB用selectlimit來在底層幫我們實(shí)現(xiàn)!
例如:
$query = "SELECT * FROM library";
$result = $db->SelectLimit($query, 5, 3);
還有一點(diǎn)是ADODB有緩存機(jī)制。
提供了CacheExecute這個(gè)。呵呵看下例子吧!
PHP代碼:
<?php
include("../libs/adodb/adodb.inc.php");
//設(shè)置緩存保存的路徑,.表示當(dāng)前目錄
$ADODB_CACHE_DIR = 'tmp';
// 創(chuàng)建一個(gè)mysql連接實(shí)例對(duì)象
$db = NewADOConnection("mysql");
// 打開一個(gè)數(shù)據(jù)庫(kù)連接
$db->Connect("localhost", "root", "root", "adodb") or die("不能連接");
// 構(gòu)造并執(zhí)行一個(gè)查詢
$query = "SELECT * FROM user";
$result = $db->CacheExecute(300,$query) or die("SQL錯(cuò)誤: $query. " . $db->ErrorMsg());//CacheExecute(300,$query)這個(gè)方法是300,表示緩存存在的時(shí)間。
// 遍歷返回的記錄集,顯示列數(shù)據(jù)的內(nèi)容 TITLE 和 AUTHOR
while (!$result->EOF) {
echo $result->fields[1] . " - " . $result->fields[2] . "/n";
$result->MoveNext();
}
// 取得和顯示返回的記錄行數(shù)
echo "/n[" . $result->RecordCount() . " 行記錄被返回]/n";
// 關(guān)閉數(shù)據(jù)庫(kù)連接
$db->Close();
?>
我感覺最爽的還是有轉(zhuǎn)換方法! rs2html();
PHP代碼:
<html>
<head></head>
<body>
<?php
include_once('../libs/adodb/adodb.inc.php');
include_once("../libs/adodb/tohtml.inc.php");
// 創(chuàng)建一個(gè)mysql連接實(shí)例對(duì)象
$db = NewADOConnection("mysql");
// 打開一個(gè)數(shù)據(jù)庫(kù)連接
$db->Connect("localhost", "root", "root", "user") or die("數(shù)據(jù)庫(kù)連接錯(cuò)誤");
// 構(gòu)造并執(zhí)行一個(gè)查詢
$query = "SELECT * FROM library";
$result = $db->Execute($query) or die("SQL錯(cuò)誤: $query. " . $db->ErrorMsg());
// 返回一個(gè)HTML格式的表格
echo rs2html($result);//返回?cái)?shù)據(jù)在表格里面自己看看吧!
// 關(guān)閉數(shù)據(jù)庫(kù)連接
$db->Close();
?>
</body>
</html>
下面介紹幾個(gè)常用的方法吧!
RecordCount() 取得和顯示返回的記錄行數(shù)
FieldCount() 取得和顯示返回的字段個(gè)數(shù)
Insert_ID() 顯示最好插入的ID
Affected_Rows() 顯示執(zhí)行完SQL后的被影響的行數(shù)
GetMenu() 生成下拉菜單!
好了只總結(jié)這么多?。∑鋵?shí)還有很多知識(shí)!
還有很多不足!希望老鳥不要笑話??!
下次再給大家做補(bǔ)充吧!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注