`
zhaochong
  • 浏览: 13303 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

PEAR DB的使用

    博客分类:
  • php
阅读更多
快递回复数据,当你不再想用fetchRow()方法来获取数据的时候,
Pear DB通过sql语句提供一些特别的方法来返回想要的数据。
这些方法有:getOne, getRow, getCol, getAssoc and getAll。
"get*() 系列方法" 可以为你做很多事情, 包括: 发起一个查询, 获取数据和清除结果。
请注意所有的Pear DB函数将可能返回一个 Pear DB_error 对象。

通过 Pear DB可以从查询结果获得更多有用的数据信息 。这些方法有:
numRows(): 通过一个"SELECT" 查询返回所有数据的数量。
numCols():通过一个"SELECT" 查询返回所有的列。
affectedRows(): 通过("INSERT", "UPDATE" or "DELETE")操作返回所有受影响的数据行数。
tableInfo():通过一个"SELECT" 查询返回一个包含数据信息的数组。

可用方法列表:
<?php
/*
* From the DB_(driver) objects
*/
// get the object with, ie:
$db = DB::connect('mysql://user:pass@localhost/my_db');
 
// Set options
$db->setErrorHandling();
$db->setFetchmode();
// Information
$db->affectedRows();
$db->tableInfo();
// Database manipulation
$db->query();
// Data fetch
$db->nextId();
$db->getOne();
$db->getRow();
$db->getCol();
$db->getAssoc();
$db->getAll();
// Place holders and execute related
$db->quote();
$db->prepare();
$db->execute();
$db->executeMultiple();
// Transactions
$db->autoCommit();
$db->commit();
$db->rollback();
// Disconnection
$db->disconnect();
 
/*
* From DB_result objects
*/
// get the object with, ie:
$res = $db->query('select * from foo');
 
// Data fetch
$res->fetchRow();
$res->fetchInto();
// Result Info
$res->numCols();
$res->numRows();
$res->tableInfo();
// Free
$res->free();
 
/*
* From DB_error objects
*/
// get the object with, ie:
$error = $db->query('select * from no_table');
 
$error->getMessage();
$error->getDebugInfo();
$error->toString();
?>

//////////////////////////////////////////////
///其他详细使用
///////////////////////////////////////////////
PEAR DB 的连接和断开

<?php
// The pear base directory must be in your include_path
require_once 'DB.php';
$user = 'foo';
$pass = 'bar';
$host = 'localhost';
$db_name = 'clients_db';

// Data Source Name: This is the universal connection string
$dsn = "mysql://$user:$pass@$host/$db_name";

// DB::connect will return a Pear DB object on success
// or a Pear DB Error object on error
// You can also set to TRUE the second param
// if you want a persistent connection:
// $db = DB::connect($dsn, true);
$db = DB::connect($dsn);

// With DB::isError you can differentiate between an error or
// a valid connection.
if (DB::isError($db)) {
         die ($db->getMessage());
}
....
// You can disconnect from the database with:
$db->disconnect();
?>
=======================

执行数据库并获得数据
<?php
// Once you have a valid DB object
...
$sql = "select * from clients";
// If the query is a "SELECT", $db->query will return
// a DB Result object on success.
// Else it simply will return a DB_OK
// On failure it will return a DB Error object.
$result = $db->query($sql);
// Always check that $result is not an error
if (DB::isError($result)) {
         die ($result->getMessage());
}

// Once you have a valid DB Result object
...
// Get each row of data on each iteration until
// there is no more rows
while ($row = $result->fetchRow()) {
     $id = $row[0];
}

?>
===============================
选择获取数据的格式
<?php
$res = $db->query('select id, name, email from users');
$row = $res->fetchRow($mode);

//With $mode = DB_FETCHMODE_ORDERED
//The default behavior is to return an ordered array.
$row = array (
     0 => <column "id" data>,
     1 => <column "name" data>,
     2 => <column "email" data>
);

$id = $row[0];

//With $mode = DB_FETCHMODE_ASSOC
//Returns an associative array with column names as array keys:
$row = array (
     'id'    => <column "id" data>,
     'name'  => <column "name" data>,
     'email' => <column "email" data>
);

$id = $row['id'];

//With $mode = DB_FETCHMODE_OBJECT
//Returns a DB_row object with column names as properties:
$row = db_row Object
(
     [id]    => <column "id" data>,
     [name]  => <column "name" data>,
     [email] => <column "email" data>
)

$id = $row->id;
?>
=============================
控制获取数据的数量
<?php
...
// the row to start fetching
$from = 50;
// how many results per page
$res_per_page = 10;
// the last row to fetch for this page
$to = $from + $res_per_page;
foreach (range($from, $to) as $rownum) {
     if (!$row = $res->fetchrow($fetchmode, $rownum)) {
         break;
     }
     $id = $row[0];
     ....
}
?>
===========================
清楚结果释放变量
<?php
...
$result = $db->query('SELECT * FROM clients');
while ($row = $result->fetchRow()) {
     ...
}
$result->free();
?>
===========================

原文地址:http://www.yaiba.net/blog/read.php/381.htm
分享到:
评论

相关推荐

    perl pear db

    PEAR DB的主要优点在于其抽象了不同数据库系统的差异,让开发者能够使用相同的API进行数据库交互,而无需关心底层数据库的具体实现。这大大简化了多数据库平台间的迁移工作,并提高了代码的可复用性。 在`package....

    PEAR中Database(DB)使用介绍.mht

    PEAR中Database(DB)使用介绍

    Pear DB 新手入门指南教程第1/3页

    在新手入门指南中,将引导读者完成Pear DB的基本使用方法,包括库的下载与安装、连接数据库、以及使用Pear DB特有的一些方法来执行数据库操作。 首先,新手入门指南的第一部分是介绍Pear DB库,并指出它可以如何...

    php-pear install

    - **广泛支持**:众多知名的 PHP 类库如 DB、Mail、XML_RPC 等,都通过 PEAR 分发和维护。 ### 2. 安装 PEAR 首先,确保你的系统上已经安装了 PHP。接着,根据操作系统,按照以下步骤安装 PEAR: **在 Unix/Linux...

    PHP核心教程 php pear php pear

    3. **类库**:包括网络、数据库、文件处理、日期时间等多个领域的类库,如DB(数据库抽象层)、Mail(邮件处理)、XML_RPC(远程过程调用)等。 4. **编码规范**:PEAR也制定了统一的编码风格和命名规则,有助于...

    php Document |Pear 安装、使用教程,包含go-pear.php

    如果你的项目已经使用了Composer,你可以通过在`composer.json`文件中添加以下依赖来安装PEAR: ```json "require": { "pear/pear-core-default": "1.10.*" } ``` 然后运行`composer install`进行安装。 **...

    pear用户手册英文版

    2. **组件**:PEAR包含了各种不同功能的组件,如数据库访问层(DB)、文件系统操作(Filesystem)、HTTP请求处理(HTTP_Request)、XML处理(XML_RPC)等,这些组件可以方便地被开发者集成到自己的PHP项目中。...

    pear_manual_en.rar_PEAR Manu_pear_manual_en_pear_manual_en.chm_p

    例如,如果你想使用PEAR的DB类库连接数据库,你可以看到如何设置数据库连接参数,如何执行SQL查询,以及如何处理查询结果。 **使用CHM文件** CHM(Compiled Help Manual)是Microsoft的一种帮助文档格式,它将多个...

    Pear Admin Think 基 于 thinkphp6 的 管 理 系 统

    使用Pear Admin Think进行开发,需要具备PHP基础和ThinkPHP6框架的使用经验。开发流程大致如下: 1. 安装环境:确保服务器已配置好PHP7.1+、MySQL等必要环境。 2. 下载项目:获取Pear Admin Think源码,解压到...

    PHP-pear学习资料

    - 例如,安装数据库连接组件可以使用 `pear install DB` 命令。 **使用 PEAR 组件**: - 在 PHP 文件中通过 `require_once 'path/to/PEAR/Component.php';` 引入所需组件。 - 调用组件中的函数或类来实现特定功能,...

    手册资料-pear英文手册

    3. **使用基本命令**: 掌握pear命令行工具的使用,如搜索、安装、更新和卸载包。 4. **探索类库**: 选择几个常用的类库,如DB或Mail,学习如何在项目中集成和使用它们。 5. **错误处理和自动加载**: 理解和实践...

    PHP Programming With PEAR

    PEAR提供了多个用于数据处理的包,例如DB(数据库抽象层)、MDB2(多数据库抽象层)、Table 和 Record。这些包可以帮助开发者更轻松地与不同类型的数据库进行交互,提高代码的可移植性和可维护性。 #### 日期处理 ...

    PEAR:创建中间的数据库应用层

    这可能包括学习如何使用PEAR的DB类或者PDO_PEAR扩展来执行SQL查询,处理结果集,以及进行错误处理等。 "工具"标签则意味着我们将讨论PEAR作为一套工具集合的角色,它提供了许多预包装的类和函数,可以用来加速开发...

    揭露PHP 应用程序中出现的五个常见数据库问题

    例如,使用 PEAR DB 模块可以将数据库连接字符串抽象出来,使代码更加易于维护和修改。 问题 2:不使用自动增量功能 不使用自动增量功能是另一个常见问题。自动增量功能可以自动为每条记录生成惟一标识符,避免了...

    pear-core:这是PEAR核心文件的权威来源

    PEAR包含有用的软件库和应用程序,例如MDB2(数据库抽象),HTML_QuickForm(HTML表单管理),PhpDocumentor(自动文档生成器),DB_DataObject(数据访问抽象)等等。 浏览位于所有可用软件包,此列表在不断增长和...

    基于PHP的PEAR代码库对医信通平台的设计与实践.pdf

    在医信通平台的设计和实现中,作者们使用了PEAR代码库中的多个类库和函数,例如PEAR的DB类库、Auth类库等。 本文还介绍了医信通平台的实现效果。通过使用医信通平台,中小型医院可以快速开发自己的信息系统,减少了...

    Pear+Smarty+PHP 手册(3份,英文版)

    通过阅读`pear_manual_en.chm`,你可以学习到如何安装和配置PEAR,如何使用它的各种包,如DB(数据库操作)、Mail(邮件发送)和HTTP(HTTP请求处理)等。此外,手册还会详细介绍PEAR的编程规范和最佳实践。 接下来...

    PEAR::DB::OO-开源

    PEAR::DB::OO 是一个抽象层,用于访问面向对象范式中的数据库表。 它面向 PHP 开发人员,是用 PHP 编写的。 它建立在 PEAR 的过程数据库抽象层 (PEAR::DB) 之上——请参阅 http://pear.php.net。

    安装centreon依赖插件 DB-1.9.2 Net_Ping-2.4.5 HTML_Common-1.2.5 等

    在IT领域,Centreon是一款广泛使用的网络性能监控和管理解决方案,它可以帮助系统管理员实时监控网络设备、服务器和服务的状态。为了确保Centreon能正常运行并提供预期功能,它依赖于一些特定的插件和库。本篇文章将...

Global site tag (gtag.js) - Google Analytics