数据抽象层->ADODB入门基础

  •   2009-07-31/23:00
  • 以前总是在水区混啊!没有发表什么文章!这次把自己以前写得文章给大家晒晒!呵呵老鸟不要看了!
    ADODB 是 Active Data Objects Data Base 的简称,它是一种PHP存取数据库的中间函式组件。
    使用 ADODB 最大的优点之一是:不管后端数据库如何,存取数据库的方式都是一致的,开发设计人员不必为了某一套数据库,而必须再学习另一套不同的存取方法,这大大减轻开发人员的知识负担,过去的知识往后仍可继续使用,转移数据库平台时,程序代码也不必做太大的更动。
    这些是以前学习总结的一些例子!
    复制PHP内容到剪贴板
    PHP代码:
    <?php
    include_once("libs/adodb/adodb.inc.php"); //包含adodb的文件

    $db = NewADOConnection("mysql"); //建立哪个数据库的对象

    $db->Connect("localhost", "root", "root", "mysql") or die("Unable to connect!"); //链接数据库

    $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; //给全局变量赋值,表示下面可以弄关联数组(我的语言不怎么样)

    $query = "SELECT * FROM user";
    $result = $db->Execute($query) or die("Error in query: $query. " . $db->ErrorMsg());//(Execute执行SQL)

    while (!$result->EOF) {
        echo $result->fields['use'] . " - " . $result->fields['pass'] . "\n";
          $result->MoveNext();//movenext()数组向下移。
    }//fields表示字段数组

    echo "\n[" . $result->RecordCount() . " 行记录被返回]\n";

    $db->Close();//关闭链接
    ?>


    这个例子是ADODB最简单的数据库操作!或者大家可以写个类来操作啊!
    在adodb中提供3个函数,GetAll,GetOne,GetRow.
    GetAll其实相当于execute,但是返回是2维数组。可以和SMARTY很好的操作。
    GetOne,GetRow.是判读数据库的某个数据是否存在!
    在ADODB中提供了SelectLimit这个函数!
    因为在转移数据库的时候可能有些SQL语句不支持!ADODB用selectlimit来在底层帮我们实现!
    例如:
    $query = "SELECT * FROM library";
    $result = $db->SelectLimit($query, 5, 3);
    还有一点是ADODB有缓存机制。
    提供了CacheExecute这个。呵呵看下例子吧!
    PHP代码:
    <?php
    include("../libs/adodb/adodb.inc.php");

    //设置缓存保存的路径,.表示当前目录
    $ADODB_CACHE_DIR = 'tmp';
    // 创建一个mysql连接实例对象
    $db = NewADOConnection("mysql");

    // 打开一个数据库连接
    $db->Connect("localhost", "root", "root", "adodb") or die("不能连接");

    // 构造并执行一个查询
    $query = "SELECT * FROM user";
    $result = $db->CacheExecute(300,$query) or die("SQL错误: $query. " . $db->ErrorMsg());//CacheExecute(300,$query)这个方法是300,表示缓存存在的时间。

    // 遍历返回的记录集,显示列数据的内容 TITLE 和 AUTHOR
    while (!$result->EOF) {
        echo $result->fields[1] . " - " . $result->fields[2] . "\n";
          $result->MoveNext();
    }

    // 取得和显示返回的记录行数
    echo "\n[" . $result->RecordCount() . " 行记录被返回]\n";

    // 关闭数据库连接
    $db->Close();
    ?>


    我感觉最爽的还是有转换方法! rs2html();
    PHP代码:
    <html>
    <head></head>
    <body>
    <?php
    include_once('../libs/adodb/adodb.inc.php');


    include_once("../libs/adodb/tohtml.inc.php");

    // 创建一个mysql连接实例对象
    $db = NewADOConnection("mysql");

    // 打开一个数据库连接
    $db->Connect("localhost", "root", "root", "user") or die("数据库连接错误");

    // 构造并执行一个查询
    $query = "SELECT * FROM library";
    $result = $db->Execute($query) or die("SQL错误: $query. " . $db->ErrorMsg());

    // 返回一个HTML格式的表格
    echo rs2html($result);//返回数据在表格里面自己看看吧!

    // 关闭数据库连接
    $db->Close();
    ?>
    </body>
    </html>

    下面介绍几个常用的方法吧!
    RecordCount()     取得和显示返回的记录行数
    FieldCount()      取得和显示返回的字段个数
    Insert_ID()       显示最好插入的ID
    Affected_Rows()   显示执行完SQL后的被影响的行数
    GetMenu()         生成下拉菜单!
    好了只总结这么多啊!其实还有很多知识!
    还有很多不足!希望老鸟不要笑话啊!
    下次再给大家做补充吧!


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多