常用的phpADODB使用方法集錦

科技探索者發表於2017-11-15

常用的php ADODB使用方法集錦

來源於:

http://www.jb51.net/article/13934.htm

————————–

<?php        


//定義資料庫變數         

$DB_TYPE     = “mysql”;         

$DB_HOST     = “localhost”;         

$DB_USER     = “root”;         

$DB_PASS     = “”;         

$DB_DATABASE = “ai-part”;         

require_once(“../adodb/adodb.inc.php“);         

$db = NewADOConnection(“$DB_TYPE”);//建立資料庫物件         

$db->debug = true;//資料庫的DEBUG測試,預設值是false         

$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;//返回的記錄集形式,關聯形式         

/***       

返回的記錄集形式       

define(`ADODB_FETCH_DEFAULT`,0);       

define(`ADODB_FETCH_NUM`,1);       

define(`ADODB_FETCH_ASSOC`,2);       

define(`ADODB_FETCH_BOTH`,3);        

以上常量,在adodb.inc.php裡定義了,也就是可用”$ADODB_FETCH_MODE=2″方式       
ADODB_FETCH_NUM   返回的記錄集中的索引,是數字形式,即資料庫欄位的排序順序值       
ADODB_FETCH_ASSOC 返回的記錄集中的索引,是原資料庫欄位名       
ADODB_FETCH_BOTH 和 ADODB_FETCH_DEFAULT 是同時返回以上兩種。某些資料庫不支援       

An example:        

    $ADODB_FETCH_MODE = ADODB_FETCH_NUM;        

    $rs1 = $db->Execute(`select * from table`);        

    $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;        

    $rs2 = $db->Execute(`select * from table`);        

    print_r($rs1->fields); # 返回的陣列是: array([0]=>`v0`,[1] =>`v1`)        

    print_r($rs2->fields); # 返回的陣列是: array([`col1`]=>`v0`,[`col2`] =>`v1`)        

***/        


//連線資料庫,方法有Connect,PConnect,NConnect,一般使用Connect         

if (!@$db->Connect(“$DB_HOST”, “$DB_USER”, “$DB_PASS”, “$DB_DATABASE”)) {         

    exit(`<a href=”/”>伺服器忙,請稍候再訪問</a>`);         

}         


/*       

$db->  $rs-> 此類的使用方法       

Execute($sql),執行引數中的$sql語句       

SelectLimit($sql,$numrows=-1,$offset=-1) $numrows:取幾條記錄,$offset,從第幾條開始取,一般是用於分頁,或只取出幾條記錄的時候用       

*/        

//Example: 取出多個記錄         

$sql = “Select * FROM table orDER BY id DESC”;         

if (!$rs = $db->Execute($sql)) {//執行SQL語句,並把結果返回給$rs變數         

    echo $db->ErrorMsg();//這個是列印出錯資訊         

    $db->Close();//關閉資料庫         

    exit();         

}         

while (!$rs->EOF) {//遍歷記錄集         

    echo $rs->fields[`username`] . `<br>`;         

      //print_r($rs->fields)試試,$rs->fields[`欄位名`],返回的是這個欄位裡的值         

    $rs->MoveNext();//將指標指到下一條記錄,否則出現死迴圈!         

}         

$rs->Close();//關閉以便釋放記憶體         


//插入新記錄         

$sql = “Insert table (user_type,username) VALUES (3, `liucheng`)”;         

$db->Execute($sql);         


//更新記錄         

$sql = “Update table SET user_type=3 Where id=2”;         

$db->Execute($sql);         


//刪除記錄         

$sql = “Delete FROM table Where id=2”;         

$db->Execute($sql);         


// 取單個記錄         

//$db->GetRow($sql), 取第一條記錄,並返回一個陣列,出錯返回false         

$sql = “Select username,password,user_type FROM table Where id=3”;         

$data_ary = $db->GetRow($sql);         

if ($data_ary == false) {         

    echo `沒有找到此記錄`;         

    exit();         

} else {         

    echo $data_ary[`username`] . ` ` . $data_ary[`password`] . ` ` . $data_ary[`user_type`] . `<br>`;         

}         


//另一種方法         

$sql = “Select username,password,user_type FROM table Where id=3”;         

if (!$rs = $db->Execute($sql)) {         

    echo $db->ErrorMsg();         

    $db->Close();         

    exit();         

}         

if (!$result = $rs->FetchRow()) {         

    echo `沒有找到此記錄`;         

    exit();         

} else {         

    echo $result[`username`] . ` ` . $result[`password`] . ` ` . $result[`user_type`] . `<br>`;         

}         


// 取單個欄位         

//$db->GetOne($sql) 取出第一條記錄的第一個欄位的值,出錯則返回false         

$sql = “Select COUNT(id) FROM table”;         

$record_nums = $db->GetOne($sql);         

echo $record_nums;         

$sql = “Select username,password,user_type FROM table Where user_id=1”;         

$result = $db->GetOne($sql);         

echo $result;//列印出username的值         

/*       

在進行新增,修改,刪除記錄操作時,       

要對字串型的欄位,使用$db->qstr()對使用者輸入的字元進行處理,       

對數字型欄位,要進行資料判斷       

更新記錄,注意:這是針對php.ini中,magic_quotes被設定為Off的情況,如果不確定,可以使用       

$db->qstr($content,get_magic_quotes_gpc())       

注意:content= 等號右邊,沒有單引號       

*/        

$sql = “Update table SET content=” . $db->qstr($content) . ” Where id=2″;         

$db->Execute($sql);         


        

/*$db->Insert_ID(),無引數,返回剛剛插入的那條記錄的ID值,僅支援部分資料庫,帶auto-increment功能的資料庫,如PostgreSQL, MySQL 和 MS SQL        

*/        

//Example:         

$sql = “Insert table (user_type,username) VALUES (3, `liucheng`)”;         

$db->Execute($sql);         

$data_id = $db->Insert_ID();         

echo $data_id;         


/*$db->GenID($seqName = `adodbseq`,$startID=1),產生一個ID值.$seqName:用於產生此ID的資料庫表名,$startID:起始值,一般不用設定,它會把$seqName中的值自動加1.支援部分資料庫,某些資料庫不支援       


Insert_ID,GenID,一般我用GenID,使用它的目的,是在插入記錄後,要馬上得到它的ID時,才用       

*/        

/*Example:       

先建立一個列名為user_id_seq的表,裡面只有一個欄位,id,int(10),NOT NULL,然後插入一條值為0的記錄       

*/        

$user_id = $db->GenID(`user_id_seq`);         

$sql = “Insert table (id, user_type,username) VALUES (” . $user_id . “, 3, `liucheng`)”;         

$db->Execute($sql);         


/*       

$rs->RecordCount(),取出記錄集總數,無引數       

它好像是把取出的記錄集,用count()陣列的方法,取得資料的數量       

如果取大量資料,效率比較慢,建議使用SQL裡的COUNT(*)的方法       

$sql = “Select COUNT(*) FROM table”, 用此方法時,不要在SQL里加ORDER BY,那樣會降低執行速度       


Example:       

*/        

$sql = “Select * FROM table orDER BY id DESC”;         

if (!$rs = $db->Execute($sql)) {         

    echo $db->ErrorMsg();         

    $db->Close();         

    exit();         

}         

$record_nums = $rs->RecordCount();         


/*       

如果想對某一結果集,要進行兩次同樣的迴圈處理,可以用下面方法       

以下,只是一個例子,只為說明$rs->MoveFirst()的使用方法       

*/        

$sql = “Select * FROM table orDER BY id DESC”;         

if (!$rs = $db->Execute($sql)) {         

    echo $db->ErrorMsg();         

    $db->Close();         

    exit();         

}         

$username_ary = array();         

while (!$rs->EOF) {         

    $username_ary[] = $rs->fields[`username`]         

    echo $rs->fields[`username`] . `<br>`;//print_r($rs->fields)試試,$rs->fields[`欄位名`],返回的是這個欄位裡的值         

    $rs->MoveNext();//將指標指到下一條記錄,不用的話,會出現死迴圈!         

}         

$username_ary = array_unique($username_ary);         


$rs->MoveFirst();//將指標指回第一條記錄         

while (!$rs->EOF) {         

    echo $rs->fields[`password`] . `<br>`;//print_r($rs->fields)試試,$rs->fields[`欄位名`],返回的是這個欄位裡的值         

    $rs->MoveNext();//將指標指到下一條記錄         

}         

$rs->Close();         


//當本頁程式,對資料庫的操作完畢後,要$db->Close();         

$db->Close();         


/*一個不錯的方法 */        

if (isset($db)) {         

    $db->Close();         

}         

?> 

———–

如何配置和使用ADODB PHP

1.下載ADODB For PHP 類庫壓縮包

2.解壓到網站目錄下任何資料夾下

3.引入ADODB配置檔案

4.配置需要的資料庫連線

5使用內建方法操作連結的資料庫

連線MySql:



<?php 

include_once(“adodb5/adodb.inc.php“); //包含adodb類庫檔案 

$db = NewADOConnection(`mysql`); 

$db->Connect(`localhost`, `root`, `root`, `test`)or die(“df”); //連線MySQL資料庫 

?>

連線Access:



<?php 

include_once(“adodb/adodb.inc.php“); //包含adodb類庫檔案 

$conn = NewADOConnection(`access`); //連線Access資料庫 

$conn->Connect(“test.mb”)or die(“cuowu”); 

?>

連線DB2:



<?php 

include(“adodb/adodb.inc.php“); //包含adodb類庫檔案 

$conn=NewADOConnection(`db2`); //連線DB2資料庫 

$conn->Connect(“driver={IBM db2 odbc DRIVER};database=mydb;hostname=localhost;port=50000; 

protocol=TCPIP;uid=root; pwd=pass”); 

?>

連線PostgreSQL:



<?php 

include(“adodb/adodb.inc.php“); //包含adodb類庫檔案 

$conn = NewADOConnection(`postgres`); 

$conn->Connect(`localhost`, `root`, `pass`, `mydb`); //連線PostgreSQL資料庫 

?>


ADODB PHP實現快速查詢功能


include_once(“adodb5/adodb.inc.php“);

$db = &NewADOConnection(`mysql`);

$db->Connect(“localhost”, “root”, “”, “db”)or die(“錯誤”);

$db->Execute(“set names `GBK`”);

$q=$db->Execute(“select * from up_admin_user”);

while($row=$q->FetchRow()){

print_r($row);

}


ADODB PHP實現智慧插入功能



include_once(“adodb5/adodb.inc.php“);

$db = &NewADOConnection(`mysql`);

$db->Connect(“localhost”, “root”, “”, “db”)or die(“錯誤”);

$db->Execute(“set names `GBK`”);

$arr=array(`m_id`=>`2`,`password`=>`333333`,`33333`=>`4444444‘);

$db->AutoExecute(“up_admin_user”,$arr,”INSERT”);

例項分享:
查詢:



<?php 

include_once(“adodb5/adodb.inc.php“); //包含adodb類庫檔案 

$db = NewADOConnection(`mysql`); 

$db->Connect(`localhost`, `root`, “, `think_zw`)or die(“error”); //連線MySQL資料庫

$db->Execute(“set names `GBK`”);

$query=$db->Execute(“select * from think_zw”);

while($row=$query->FetchRow()){

print_r($row);

}

?>

插入:插入時它會自動過濾掉沒有用的陣列。排除掉沒有用的陣列。

欄位都可以不對應的插入。



<?php 

include_once(“adodb5/adodb.inc.php“); //包含adodb類庫檔案 

$db = NewADOConnection(`mysql`); 

$db->Connect(`localhost`, `root`, “, `think_zw`)or die(“error”); //連線MySQL資料庫

$db->Execute(“set names `GBK`”);

$arr=array(“id”=>””,

“name”=>”小軍”,

“details”=>”小軍愛看美女”);//注意不要把雙引號寫成單引號

$db->AutoExecute(“think_zw”,$arr,”INSERT”);

$query=$db->Execute(“select * from think_zw”);

while($row=$query->FetchRow()){

echo $row[name].”<br>”;

}

?> 

===============================

PHP ADODB 地址方式連線資料庫:



include_once(“adodb5/adodb.inc.php“); 

$db = NewADOConnection(`mysql://root:@localhost/upload`); 

$sql=”SELECT * FROM `pic`”; 

$db->SetFetchMode(ADODB_FETCH_ASSOC);//ADODB_FETCH_NUM這裡和那個fetch_array和 fetch_row區別有點類似 

//mysql_fetch_array() 

$sr1 = $db->Execute($sql); 

print_r($sr1->fields); 

PHP ADODB 物件方式獲取資料庫內容



$db = NewADOConnection(`mysql`); 

$db->PConnect(“localhost”, “root”, “”, “upload”); 

$sql=”SELECT * FROM `pic`”; 

$rs2=$db->Execute($sql); 

while($row=$rs2->FetchNextObject()){ 

echo $row->NAME; 


PHP ADODB HTML程式碼方式顯示內容



include_once(“adodb5/tohtml.inc.php“); 

$db = NewADOConnection(`mysql`); 

$db->Connect(“localhost”, “root”, “”, “upload”); 

$sql=”SELECT * FROM `pic`”; 

$rs2=$db->Execute($sql); 

echo rs2html($rs2); 

PHP ADODB 實現內容自動分頁功能



include_once(“adodb5/adodb-pager.inc.php“); 

session_start(); 

$db = NewADOConnection(`mysql`); 

$db->Connect(“localhost”, “root”, “”, “upload”); 

$db->Execute(“set names `GBK`”);

$sql=”SELECT * FROM `pic`”; 

$pager=new ADODB_Pager($db,$sql); 

$pager->Render(2);


來源於:http://www.jb51.net/article/50962.htm

本文轉自孤舟夜航之家部落格51CTO部落格,原文連結http://blog.51cto.com/cysky/1661516如需轉載請自行聯絡原作者

cysky


相關文章