程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 數據抽象層-ADODB入門基礎

數據抽象層-ADODB入門基礎

編輯:關於PHP編程

以前總是在水區混啊!沒有發表什麼文章!這次把自己以前寫得文章給大家曬曬!呵呵老鳥不要看了!
ADODB 是 Active Data Objects Data Base 的簡稱,它是一種PHP存取數據庫的中間函式組件。
使用 ADODB 最大的優點之一是:不管後端數據庫如何,存取數據庫的方式都是一致的,開發設計人員不必為了某一套數據庫,而必須再學習另一套不同的存取方法,這大大減輕開發人員的知識負擔,過去的知識往後仍可繼續使用,轉移數據庫平台時,程序代碼也不必做太大的更動。
這些是以前學習總結的一些例子!
復制PHP內容到剪貼板
PHP代碼:
<?php
include_once("libs/adodb/adodb.inc.php"); //包含adodb的文件

$db = NewADOConnection("mysql"); //建立哪個數據庫的對象

$db->Connect("localhost", "root", "root", "mysql") or die("Unable to connect!"); //鏈接數據庫

$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; //給全局變量賦值,表示下面可以弄關聯數組(我的語言不怎麼樣)

$query = "SELECT * FROM user";
$result = $db->Execute($query) or die("Error in query: $query. " . $db->ErrorMsg());//(Execute執行SQL)

while (!$result->EOF) {
    echo $result->fields[use] . " - " . $result->fields[pass] . " ";
      $result->MoveNext();//movenext()數組向下移。
}//fields表示字段數組

echo " [" . $result->RecordCount() . " 行記錄被返回] ";

$db->Close();//關閉鏈接
?>


這個例子是ADODB最簡單的數據庫操作!或者大家可以寫個類來操作啊!
在adodb中提供3個函數,GetAll,GetOne,GetRow.
GetAll其實相當於execute,但是返回是2維數組。可以和SMARTY很好的操作。
GetOne,GetRow.是判讀數據庫的某個數據是否存在!
在ADODB中提供了SelectLimit這個函數!
因為在轉移數據庫的時候可能有些SQL語句不支持!ADODB用selectlimit來在底層幫我們實現!
例如:
$query = "SELECT * FROM library";
$result = $db->SelectLimit($query, 5, 3);
還有一點是ADODB有緩存機制。
提供了CacheExecute這個。呵呵看下例子吧!
PHP代碼:
<?php
include("../libs/adodb/adodb.inc.php");

//設置緩存保存的路徑,.表示當前目錄
$ADODB_CACHE_DIR = tmp;
// 創建一個mysql連接實例對象
$db = NewADOConnection("mysql");

// 打開一個數據庫連接
$db->Connect("localhost", "root", "root", "adodb") or die("不能連接");

// 構造並執行一個查詢
$query = "SELECT * FROM user";
$result = $db->CacheExecute(300,$query) or die("SQL錯誤: $query. " . $db->ErrorMsg());//CacheExecute(300,$query)這個方法是300,表示緩存存在的時間。

// 遍歷返回的記錄集,顯示列數據的內容 TITLE 和 AUTHOR
while (!$result->EOF) {
    echo $result->fields[1] . " - " . $result->fields[2] . " ";
      $result->MoveNext();
}

// 取得和顯示返回的記錄行數
echo " [" . $result->RecordCount() . " 行記錄被返回] ";

// 關閉數據庫連接
$db->Close();
?>


我感覺最爽的還是有轉換方法! rs2html();
PHP代碼:
<html>
<head></head>
<body>
<?php
include_once(../libs/adodb/adodb.inc.php);


include_once("../libs/adodb/tohtml.inc.php");

// 創建一個mysql連接實例對象
$db = NewADOConnection("mysql");

// 打開一個數據庫連接
$db->Connect("localhost", "root", "root", "user") or die("數據庫連接錯誤");

// 構造並執行一個查詢
$query = "SELECT * FROM library";
$result = $db->Execute($query) or die("SQL錯誤: $query. " . $db->ErrorMsg());

// 返回一個HTML格式的表格
echo rs2html($result);//返回數據在表格裡面自己看看吧!

// 關閉數據庫連接
$db->Close();
?>
</body>
</html>

下面介紹幾個常用的方法吧!
RecordCount()     取得和顯示返回的記錄行數
FieldCount()      取得和顯示返回的字段個數
Insert_ID()       顯示最好插入的ID
Affected_Rows()   顯示執行完SQL後的被影響的行數
GetMenu()         生成下拉菜單!
好了只總結這麼多啊!其實還有很多知識!
還有很多不足!希望老鳥不要笑話啊!
下次再給大家做補充吧!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved