PHP视频教学,让你更快更轻松的掌握PHP。

查看完整版本: 淡水河边php视频教程进阶篇04【adodb类的使用】

淡水河边 2007-12-18 17:05

淡水河边php视频教程进阶篇04【adodb类的使用】

讲解了著名的php开源项目ADODB类,ADODB是php的一个数据库抽象类,下面先对他简介一下。

[quote]
虽然 PHP 是建构 Web 系统强有力的工具,但是 PHP 存取数据库的功能,一直未能标准化,每一种数据库,都使用另一种不同且不兼容的应用程序接口(API)。为了填补这个缺憾,因此才有 ADODB 的出现。一旦存取数据库的接口予以标准化,就能隐藏各种数据库的差异,若欲转换至其它不同的数据库,将变得十分容易。

目前 ADODB 支持的数据库种类非常地多,例如:MySQL, PostgreSQL, Interbase, Informix, oracle, MS SQL7, Foxpro, Access, ADO, Sybase, DB2 以及一般的 ODBC。

[color=red]使用 ADODB 最大的优点之一是:不管后端数据库如何,存取数据库的方式都是一致的,开发设计人员不必为了某一套数据库,而必须再学习另一套不同的存取方法,这大大减轻开发人员的知识负担,过去的知识往后仍可继续使用,转移数据库平台时,程序代码也不必做太大的更动。[/color]
[/quote]

由[url=http://www.tsingfeng.com/]淡水河边[/url]在[url=http://www.dophp.net/]php同盟会[/url]首发,原创作品,转载请注明出处并保留链接,请勿用于商业用途。

无需积分,回复下载。(无奈,好多朋友都给我提出要求了。)

下载地址:   **** Hidden Message *****http://www.dophp.net/soft/www.dophp.net_adodb_bytsingfeng.com.rar[/url]
源码:[php]//============================
//        Filename: adodb_demo.php
//        Version : 0.0.1
//        Author  : 淡水河边
//        Update  : 2007-12-15
//        Content : PHP by Editplus
//============================

//定义数据库变量
$DB_TYPE     = "mysql";
$DB_HOST     = "localhost";
$DB_USER     = "root";
$DB_PASS     = "";
$DB_DATABASE = "test";
require_once("./adodb/adodb.inc.php");
$db = NewADOConnection("$DB_TYPE");//建立数据库对象
$db->debug = true;//数据库的DEBUG测试,默认值是false
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;//返回的记录集形式,关联形式




//连接数据库,方法有Connect,PConnect,一般使用Connect
if (!@$db->Connect("$DB_HOST", "$DB_USER", "$DB_PASS", "$DB_DATABASE")) {
    exit('[url=/]服务器忙,请稍候再访问[/url]');
}




//取出多个记录
$sql = "SELECT * FROM guestbook ORDER BY id DESC";
if (!$rs = $db->Execute($sql)) {//执行SQL语句,并把结果返回给$rs变量
    echo $db->ErrorMsg();//这个是打印出错信息
    $db->Close();//关闭数据库
    exit();
}
while (!$rs->EOF) {//遍历记录集
    echo $rs->fields['username'] . '
';
    $rs->MoveNext();//将指针指到下一条记录,否则出现死循环!
}
$rs->Close();//关闭以便释放内存




//插入新记录
$sql = "INSERT guestbook (title,body) VALUES ('www.tsingfeng.com', 'www.dophp.net')";
$db->Execute($sql);





//更新记录
$sql = "UPDATE guestbook SET title='php同盟会' Where id=1";
$db->Execute($sql);






//删除记录
$sql = "DELETE FROM guestbook WHERE id=1";
$db->Execute($sql);




// 取一条记录
//$db->GetRow($sql), 取第一条记录,并返回一个数组,出错返回false
$sql = "SELETE title,body FROM guestbook WHERE id=2";
$data_ary = $db->GetRow($sql);
if ($data_ary == false) {
    echo '没有找到此记录';
    exit();
} else {
    echo $data_ary['title'] . ' ' . $data_ary['body']  . '
';
}

//另一种方法(笨笨的)
$sql = "SELETE title,body FROM guestbook WHERE id=2";
if (!$rs = $db->Execute($sql)) {
    echo $db->ErrorMsg();
    $db->Close();
    exit();
}
if (!$result = $rs->FetchRow()) {
    echo '没有找到此记录';
    exit();
} else {
    echo $result['title'] . ' ' . $result['body'] . '
';
}




// 取单个字段
//$db->GetOne($sql) 取出第一条记录的第一个字段的值,出错则返回false
$sql = "SELECT COUNT(id) FROM guestbook";
$record_nums = $db->GetOne($sql);
echo $record_nums;

$sql = "SELECT title FROM guestbook WHERE id=1";
$result = $db->GetOne($sql);
echo $result;//打印出title的值




/*
$db->Insert_ID(),返回刚刚插入的那条记录的ID值
仅支持部分数据库,带auto-increment功能的数据库,如PostgreSQL, MySQL 和 MS SQL
*/
$sql = "Insert guestbook (title,body) VALUES ('淡水河边', 'I love PHP')";
$db->Execute($sql);
$data_id = $db->Insert_ID();
echo $data_id;



/*
$rs->RecordCount(),取出记录集总数,无参数
*/
$sql = "Select * FROM guestbook ORDER BY id DESC";
if (!$rs = $db->Execute($sql)) {
    echo $db->ErrorMsg();
    $db->Close();
    exit();
}
$record_nums = $rs->RecordCount();




/*
如果想对某一结果集,要进行两次同样的循环处理,可以用下面方法
以下,只是一个例子,只为说明$rs->MoveFirst()的使用方法
*/
$sql = "SELECT * FROM guestbokk ORDER BY id DESC";
if (!$rs = $db->Execute($sql)) {
    echo $db->ErrorMsg();
    $db->Close();
    exit();
}

while (!$rs->EOF) {
    echo $rs->fields['title'] . '
';
    $rs->MoveNext();//将指针指到下一条记录
}


$rs->MoveFirst();//将指针指回第一条记录
while (!$rs->EOF) {
    echo $rs->fields['body'] . '
';
    $rs->MoveNext();//将指针指到下一条记录
}
$rs->Close();


//当本页程序,对数据库的操作完毕后,要$db->Close();
if (isset($db)) {
    $db->Close();
}
?>[/php]

淡水河边 2007-12-18 17:14

沙发自己做

淡水河边 2007-12-18 17:14

板凳自己搬

淡水河边 2007-12-18 17:15

地板也不漏

淡水河边 2007-12-18 17:15

地下室也不留了

淡水河边 2007-12-18 17:16

下水道占了。以下的留给各位

离群的猴子 2007-12-18 17:24

我来给你顶住,谢谢了,辛苦了,喝口茶休息一下。:lol

极品黑公子 2007-12-18 17:39

好位置全是自己的,:@ 小所,我把挪到第一个去吧:lol

robin 2007-12-18 17:46

一般沙发是我做的
无奈今天连地板都没得坐
FTP无法上传了
在联系远方
希望远方冒个泡赶紧处理了

v9long 2007-12-19 13:18

7t98y7i87o789i87i9

liexusong 2007-12-20 12:26

谢谢~~~~~~~~~~

lxylxy8866 2007-12-21 07:37

忘了来顶了,
非常滴不好意思……
现在不迟吧,:lol :lol

zj4423389 2007-12-21 09:27

FFJ

VB S JJJJJJJJjjjjimc

qyx 2007-12-21 15:44

顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

和尚 2007-12-25 18:35

呵呵 ,谢谢拉。现在可以下了。

lindyhegang 2007-12-27 10:17

谢谢 大师:lol

kariryo 2007-12-27 14:19

楼主真是好人
:lol

cain 2007-12-31 23:04

都时候老熟人了,,还搞这个干嘛??
还得回复!???

myj2005 2008-1-7 19:31

强,学习中,我要下了

海盗船长 2008-1-15 18:57

回复啊   应该如此  不然  人家还专门看啊?
页: [1] 2 3 4 5
查看完整版本: 淡水河边php视频教程进阶篇04【adodb类的使用】