常用的phpADODB使用方法集錦
常用的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
相關文章
- javascript 陣列(array) 常用的方法集錦(上)JavaScript陣列
- Windows10常用快捷鍵集錦Windows
- PHP開發常用程式碼集錦PHP
- CSS常用功能程式碼集錦CSS
- Python 列表 list 陣列 array 常用操作集錦Python陣列
- redis常用資料型別操作命令集錦Redis資料型別
- 知識集錦
- 管理故事集錦
- 四月前端知識集錦(每月不可錯過的文章集錦)前端
- 六月前端知識集錦(每月不可錯過的文章集錦)前端
- 五月前端知識集錦(每月不可錯過的文章集錦)前端
- ArchLinux 問題集錦Linux
- 小問題集錦
- docker 踩坑集錦Docker
- Python例項集錦Python
- 前端知識集錦前端
- kafka問題集錦Kafka
- flutter問題集錦Flutter
- PHP命令執行集錦PHP
- 面試題集錦-SpringBoot面試題Spring Boot
- SYBASE 使用技巧集錦(zt)
- JS工程化集錦JS
- Android 知識點 集錦Android
- iOS 感測器集錦iOS
- vue知識點集錦Vue
- 面試集錦(九)git面試Git
- 面試集錦(十二)hashMap面試HashMap
- 面試集錦(三)spring面試Spring
- API集錦:免費好用的API介面API
- uni-app(優雅的“排雷”集錦)APP
- 簡短爆笑的小笑話集錦
- Unity&Shader常用函式的使用方法Unity函式
- java8Stream操作集錦Java
- 資料競賽Tricks集錦
- Android開發錯誤集錦Android
- 線上問題集錦(1)
- 線上問題集錦(2)
- Linux 問題處理集錦Linux
- 經典的Java面試題及回答集錦Java面試題