php ADODB使用方法

2021-08-23 12:44:55 字數 4728 閱讀 1485

<?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"))

/* $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))

while (!$rs->eof)

$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) else

//另一種方法

$sql = "select username,password,user_type from table where id=3";

if (!$rs = $db->execute($sql))

if (!$result = $rs->fetchrow()) else

// 取單個字段

//$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))

$record_nums = $rs->recordcount();

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

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

*/ $sql = "select * from table order by id desc";

if (!$rs = $db->execute($sql))

$username_ary = array();

while (!$rs->eof)

$username_ary = array_unique($username_ary);

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

while (!$rs->eof)

$rs->close();

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

$db->close();

/*乙個不錯的方法 */

if (isset($db))

?>

php ADODB使用方法

定義資料庫變數 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 建立資料庫物件 ...

常用的php ADODB使用方法集錦

定義資料庫變數 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 建立資料庫物件 ...

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...