日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql adodb_常用的adodb使用方法

發布時間:2023/12/14 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql adodb_常用的adodb使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整理:飛豹游俠?QQ:8527385?E-mail:liuchengcn?#?163.com

如有錯誤之處,敬請諒解,并QQ或E-mail通知我,謝謝*///定義數據庫變量$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測試,程序開發期,可設置為true,正式版要注釋掉這行,(默認值是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?這個變量可以設置的值

常用的是:ADODB_FETCH_NUM?或?ADODB_FETCH_ASSOC

ADODB_FETCH_NUM???返回的記錄集中的索引,是數字形式,即數據庫字段的排序順序值

ADODB_FETCH_ASSOC?返回的記錄集中的索引,是原數據庫字段名

ADODB_FETCH_BOTH?和?ADODB_FETCH_DEFAULT?是同時返回?ADODB_FETCH_NUM,?ADODB_FETCH_ASSOC的值,某些數據庫不支持

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.?NConnect是連接特殊的數據庫時才用if(!@$db->Connect("$DB_HOST","$DB_USER","$DB_PASS","$DB_DATABASE"))?{exit('服務器忙,請稍候再訪問');

}/*$db->??$rs->?此類的使用方法

Execute($sql,$inputarr=false),執行參數中的$sql語句,后面的那個$inputarr參數,一般情況下不需要

SelectLimit($sql,$numrows=-1,$offset=-1,$inputarr=false)?$numrows:取幾條記錄,$offset,從第幾條開始取,SelectLimit,一般是用于分頁,或只取出幾條記錄的時候用*///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'].'';//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),?取出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'].'';

}//這里沒有用到$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中的第一條記錄的第一個字段的值,如果出錯,則返回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'].'';//print_r($rs->fields)試試,$rs->fields['字段名'],返回的是這個字段里的值$rs->MoveNext();//將指針指到下一條記錄,不用的話,會出現死循環!}$username_ary=array_unique($username_ary);$rs->MoveFirst();//將指針指回第一條記錄,無參數while(!$rs->EOF)?{echo$rs->fields['password'].'';//print_r($rs->fields)試試,$rs->fields['字段名'],返回的是這個字段里的值$rs->MoveNext();//將指針指到下一條記錄,不用的話,會出現死循環!}$rs->Close();/*當本頁程序,對數據庫的操作完畢后,要$db->Close();*/$db->Close();/*一個不錯的方法*/if(isset($db))?{$db->Close();

}?>

總結

以上是生活随笔為你收集整理的mysql adodb_常用的adodb使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。