小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

常用的adodb使用方法,學(xué)習(xí)資料

 無非 2007-03-22

常用的adodb使用方法,學(xué)習(xí)資料

常用的adodb使用方法,學(xué)習(xí)資料
來源: http://www.

<?php
/*
常用的ADODB使用方法
整理:飛豹游俠 QQ:8527385 E-mail:liuchengcn # 163.com
如有錯(cuò)誤之處,敬請(qǐng)諒解,并QQ或E-mail通知我,謝謝
*/

//定義數(shù)據(jù)庫變量
$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");//建立數(shù)據(jù)庫對(duì)象
$db->debug = true;//數(shù)據(jù)庫的DEBUG測試,程序開發(fā)期,可設(shè)置為true,正式版要注釋掉這行,(默認(rèn)值是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 這個(gè)變量可以設(shè)置的值
常用的是:ADODB_FETCH_NUM 或 ADODB_FETCH_ASSOC
ADODB_FETCH_NUM   返回的記錄集中的索引,是數(shù)字形式,即數(shù)據(jù)庫字段的排序順序值
ADODB_FETCH_ASSOC 返回的記錄集中的索引,是原數(shù)據(jù)庫字段名
ADODB_FETCH_BOTH 和 ADODB_FETCH_DEFAULT 是同時(shí)返回 ADODB_FETCH_NUM, ADODB_FETCH_ASSOC的值,某些數(shù)據(jù)庫不支持
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); # 返回的數(shù)組是: array([0]=>‘v0‘,[1] =>‘v1‘)
    print_r($rs2->fields); # 返回的數(shù)組是: array([‘col1‘]=>‘v0‘,[‘col2‘] =>‘v1‘)
*/

 
//連接數(shù)據(jù)庫,方法有Connect,PConnect,NConnect,一般使用Connect. NConnect是連接特殊的數(shù)據(jù)庫時(shí)才用
if (!@$db->Connect("$DB_HOST", "$DB_USER", "$DB_PASS", "$DB_DATABASE")) {
    
exit(服務(wù)器忙,請(qǐng)稍候再訪問);
}
 
/*
$db->  $rs-> 此類的使用方法
Execute($sql,$inputarr=false),執(zhí)行參數(shù)中的$sql語句,后面的那個(gè)$inputarr參數(shù),一般情況下不需要
SelectLimit($sql,$numrows=-1,$offset=-1,$inputarr=false)
$numrows:取幾條記錄,$offset,從第幾條開始取,SelectLimit,一般是用于分頁,或只取出幾條記錄的時(shí)候用
*/

//Example: 取出多個(gè)記錄
$sql = "SELECT * FROM table ORDER BY id DESC";
if (!$rs = $db->Execute($sql)) {//執(zhí)行SQL語句,并把結(jié)果返回給$rs變量
    
echo $db->ErrorMsg();//這個(gè)是打印出錯(cuò)信息
    
$db->Close();//關(guān)閉數(shù)據(jù)庫
    
exit();
}
while (!$rs->EOF) {//遍歷記錄集
    
echo $rs->fields[username] .
;//print_r($rs->fields)試試,$rs->fields[‘字段名‘],返回的是這個(gè)字段里的值
    
$rs->MoveNext();//將指針指到下一條記錄,不用的話,會(huì)出現(xiàn)死循環(huán)!
}
$rs->Close();//關(guān)閉它,以便釋放內(nèi)存,每次操作完都進(jìn)行一次關(guān)閉,養(yǎng)成編程的好習(xí)慣
 
//插入新記錄
$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);
 
// 取單個(gè)記錄
//$db->GetRow($sql), 取出SQL中的第一條記錄,并返回一個(gè)數(shù)組,如果出錯(cuò),則返回false
$sql = "SELECT username,password,user_type FROM table WHERE id=3";
$data_ary = $db->GetRow($sql);
if ($data_ary == false) {//如果用===,可能不是你想要的結(jié)果
    
echo 沒有找到此記錄;
    
exit();
} else {
    
echo $data_ary[username] . . $data_ary[password] . . $data_ary[user_type] .
;
}
//這里沒有用到$rs,則不需要$rs->Close();
//另一種方法 (使用上面的方法比較好,又方便)
$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] .
;
}
 
//$db->GetOne($sql) 取出SQL中的第一條記錄的第一個(gè)字段的值,如果出錯(cuò),則返回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的值
/*
在進(jìn)行添加,修改,刪除記錄操作時(shí),要對(duì)字符串型的字段,使用$db->qstr()對(duì)用戶輸入的字符進(jìn)行處理,對(duì)數(shù)字型字段,要在之前,進(jìn)行數(shù)據(jù)判斷
更新記錄,注意:這是針對(duì)php.ini中,magic_quotes被設(shè)置為Off的情況,如果不確定,可以使用
$db->qstr($content,get_magic_quotes_gpc())
注意:content= 等號(hào)右邊,沒有單引號(hào)
*/

$sql = "UPDATE table SET content=" . $db->qstr($content) . " WHERE id=2";
$db->Execute($sql);
 
 
/*$db->Insert_ID(),無參數(shù),返回剛剛插入的那條記錄的ID值,僅支持部分?jǐn)?shù)據(jù)庫,帶auto-increment功能的數(shù)據(jù)庫,如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 = ‘a(chǎn)dodbseq‘,$startID=1),產(chǎn)生一個(gè)ID值.$seqName:用于產(chǎn)生此ID的數(shù)據(jù)庫表名,$startID:起始值,一般不用設(shè)置,它會(huì)把$seqName中的值自動(dòng)加1.支持部分?jǐn)?shù)據(jù)庫,某些數(shù)據(jù)庫不支持
 
Insert_ID,GenID,一般我用GenID,使用它的目的,是在插入記錄后,要馬上得到它的ID時(shí),才用
*/

/*Example:
先創(chuàng)建一個(gè)列名為user_id_seq的表,里面只有一個(gè)字段,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(),取出記錄集總數(shù),無參數(shù)
它好像是把取出的記錄集,用count()數(shù)組的方法,取得數(shù)據(jù)的數(shù)量
如果取大量數(shù)據(jù),效率比較慢,建議使用SQL里的COUNT(*)的方法
$sql = "SELECT COUNT(*) FROM table", 用此方法時(shí),不要在SQL里加ORDER BY,那樣會(huì)降低執(zhí)行速度
 
Example:
*/

$sql = "SELECT * FROM table ORDER BY id DESC";
if (!$rs = $db->Execute($sql)) {
    
echo $db->ErrorMsg();
    
$db->Close();
    
exit();
}
$record_nums = $rs->RecordCount();
 
/*
如果想對(duì)某一結(jié)果集,要進(jìn)行兩次同樣的循環(huán)處理,可以用下面方法
以下,只是一個(gè)例子,只為說明$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] .
;//print_r($rs->fields)試試,$rs->fields[‘字段名‘],返回的是這個(gè)字段里的值
    
$rs->MoveNext();//將指針指到下一條記錄,不用的話,會(huì)出現(xiàn)死循環(huán)!
}
$username_ary = array_unique($username_ary);
 
$rs->MoveFirst();//將指針指回第一條記錄,無參數(shù)
while (!$rs->EOF) {
    
echo $rs->fields[password] .
;//print_r($rs->fields)試試,$rs->fields[‘字段名‘],返回的是這個(gè)字段里的值
    
$rs->MoveNext();//將指針指到下一條記錄,不用的話,會(huì)出現(xiàn)死循環(huán)!
}
$rs->Close();
 
 
/*
當(dāng)本頁程序,對(duì)數(shù)據(jù)庫的操作完畢后,要$db->Close();
 
*/

 
$db->Close();
 
/*一個(gè)不錯(cuò)的方法 */
if (isset($db)) {
    
$db->Close();
}
?>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多