1、数据查询

i. DB_common::getAll() DB_FETCHMODE_ORDERED 、 DB_FETCHMODE_ASSOC 、 DB_FETCHMODE_OBJECT

ii. DB_common::getRow()

iii. DB_common::getAssoc()

iv. DB_common::getCol()

v. DB_common::getOne()

 <!--
PHP PEAR DB类部分函数说明:更多函数可参考pear/db.php和pear/db/common.php
connect():数据库链接函数
query():SQL语句执行函数
execute():SQL语句执行函数,与query()函数使用方式略有不同,具体可参考pear/db/common.php文件
setFetchMode():设定返回记录集是数字索引数组还是关联数组或者对象
numRows():返回记录集有多少行
numCols():返回记录集有多少列
free():释放记录集
disconnect():关闭数据库链接
affectedRows():操作影响的记录行数
isManip():判断一个查询是数据处理还是数据定义操作 --> <?php
//引入PDB库
require_once("DB.php");
//设定访问的数据库、登录名、密码、主机
$userName = 'root';
$password = 'a12345';
$hostName = 'localhost';
$dbName = 'db_chengxl';
//设定DSN参数,并进行数据库链接,我连接的数据库为Mysql
$dsn = "mysql://$userName:$password@$hostName/$dbName"; $dbCon = DB::connect($dsn);
//错误处理
if (DB::isError($dbCon)) {
die ($dbCon->getMessage());
} //创建数据表,并插入测试数据
/*
$sql = "CREATE TABLE cxl (" .
"`id` INT( 11 ) UNSIGNED NOT NULL ," .
"`name` VARCHAR( 30 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL ," .
"`age` INT( 2 ) NOT NULL ," .
"`birthday` VARCHAR( 30 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL ," .
"`sex` INT( 1 ) NOT NULL ," .
"PRIMARY KEY ( `id` )" .
") ENGINE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci"; $result = $dbCon->query($sql); if (DB::isError($result)) {
die ($result->getMessage()); } $sql = "insert into cxl(id,name,age,birthday,sex) values(1,'cxl',1,'2009-05-13',1),(2,'cxl',1,'2009-05-13',1),(3,'cxl',1,'2009-05-13',1)"; $result = $dbCon->query($sql); if (DB::isError($result)) {
die ($result->getMessage());
}*/ //setFetchMode函数是PHP PEAR DB让用户设定返回记录集是数字索引数组还是关联数组或者对象,
//此处我设定为关联数组的形式。默认DB_FETCHMODE_ORDERED模式,
//其他两种模式为DB_FETCHMODE_ASSOC与DB_FETCHMODE_OBJECT //获取数据
/*
$dbCon->setFetchMode(DB_FETCHMODE_ASSOC); $sql = "select * from cxl"; $result = $dbCon->query($sql); if (DB::isError($result)) {
die ($result->getMessage());
} for ($i = 0; $i < $result->numRows(); $i++) {
$info = &$result->fetchRow(); echo "name:" . $info['name'];
echo "birthday:" . $info['birthday'] . "<br>";
}
*/ //总数
/*
* $colCount = $result->numCols();
* echo "<tr><td colspan=\"".$colCount."\">共找到".$result->numRows()."位用户</td></tr>";
*/ //function &getOne($query, $params = array())
//执行查询,并返回结果集中第一行第一列的数据。$params是参数值,如果后端数据库支持,将调用prepare/execute来使用这些参数。 /*
$sql = "select * from cxl";
$last = $dbCon->getOne($sql);
if(DB::isError($last)){
echo "出错:".DB::errorMessage($last);
}
echo "id:".$last;*/ //function &getAll($query, $fetchmode = DB_FETCHMODE_DEFAULT, $params = array())
//返回包含结果集中全部记录的数组。注意,如果你的结果集很大,不要使用这个函数。
/*
$sql ="select * from cxl limit 1000";
$list = $dbCon->getAll($sql);
if(DB::isError($list)){
die( "数据库错误:".DB::errorMessage($list));
}
for ($i=0;$i<count($list);$i++){
$user = $list[$i];
echo "<tr>";
for($j=0;$j<count($user);$j++){
echo "<td>".$user[$j]."</td>";
}
echo "</tr>";
}
*/ //function &getCol($query, $col = 0, $params = array())
//执行查询,并返回包含结果集中指定字段列的值的数组。
//$col是要返回的列的索引,可以是整数,或者是关键字段名。
/*$sql = "select id ,age,name from cxl order by age desc limit 100";
$row = $dbCon->getCol($sql,1);
if(DB::isError($row)){
echo "出错:".DB::errorMessage($row);
}
for($i=0;$i<count($row);$i++){
echo "<tr>$row[$i]</tr>";
}*/ //function &getRow($query, $fetchmode = DB_FETCHMODE_DEFAULT, $params = array())
//执行查询,请返回结果集的第一条记录。
//$fetchmod 指定fetch模式,如果省略,使用缺省模式。 /*
$sql = "select * from cxl order by id desc";
$row = $dbCon->getRow($sql);
if(DB::isError($row)){
echo "出错:".DB::errorMessage($row);
}
for($i=0;$i<count($row);$i++){
echo "<td>$row[$i]</td>";
}
*/ //function &getAssoc($query, $force_array = false, $params = array())
//执行查询,并返回一个关联数组。
//$force_arry 强制返回数组。如果true,那么即使你的结果集里只有2个字段,那么关键字段对应的值也是一个只有一个元素的
//数组。如果false,那么关键字段对应的值是一个标量了。
/*
$sql = "select id,name,age from cxl limit 100";
$userinfo = $dbCon->getAssoc($sql);
if (DB::isError($userinfo)) {
die("错误!" . DB::errorMessage($userinfo));
}
//var_dump($userinfo);
if (empty($userinfo)) {
echo "warning:NO users!";
return; } $info = $userinfo['2'];
if (empty($info)) {
echo "没有这个用户信息!";
}
print_r($info);
//var_dump($info);
*/ //自动增长(Sequences)
//Sequences 为数据行提供独一无二的ID标识。如果熟悉MySQL之类的话,可以把它想象为AUTO_INCREMENT.它非常简单,
//首先你获取一个ID,然后在这个ID所在的行插入你所需要记录的数据。可以为你的表设置更多的Sequences,
//只需要保证在任何特殊的表中都使用一样的sequence就行。 // Get an ID (if the sequence doesn't exist, it will be created)
$id = $dbCon->nextId(cxl);
$sql = "insert into cxl(id,name,age,birthday,sex) values($id,'cxl',1,'2009-05-13',1)"; // Use the ID in your INSERT query
//$res = $dbCon->query("INSERT INTO cxl (id,name) VALUES ($id,'foo')");
$res = $dbCon->query($sql);
if(DB::isError($res)){
echo "出错:".DB::errorMessage($res);
} echo "<tr><td>当前插入数据的ID:$id</td></tr>"; //释放
$result->free();
//关闭连接
$dbCon->disconnect(); ?>

2、数据插入、更新:autoExecute()

 <?php
//引入PDB库
require_once("DB.php");
//设定访问的数据库、登录名、密码、主机
$db = &DB::connect('mysql://root:a12345@localhost/db_chengxl');
//错误处理
if (DB::isError($db)) {
die ($db->getMessage());
}
$table_name = 'user'; //插入的数据
$fields_values = array(
'id' => '1',
'name' => 'Darlin',
'country' => 'Acewill',
);
//修改的数据
$fields1_values = array(
// 'id' => '1',
// 'name' => 'Darlin',
'country' => 'ACEWILL'//这里填写希望修改后的数据,
);
//Using autoExecute() in insert mode
//$res = $db->autoExecute($table_name, $fields_values, DB_AUTOQUERY_INSERT); //Using autoExecute() in update mode
$res = $db->autoExecute($table_name, $fields1_values, DB_AUTOQUERY_UPDATE); //用这个方法没有效果
//$res = $db->autoExecute($table_name, $fields_values, DB_AUTOQUERY_UPDATE, "country = 'Japan'");
if (PEAR::isError($res)) {
die($res->getMessage());
} else {
echo "操作成功!</br>";
} ?>

以上资料均来源网络,

PHP PEAR DB类安装与使用实例详解:http://www.alixixi.com/program/a/2011101775410.shtml

PEAR:创建中间的数据库应用层1:http://www.alixixi.com/program/a/2008020831340.shtml

PEAR:创建中间的数据库应用层2:http://www.alixixi.com/program/a/2008020831341.shtml

PEAR DB 初学笔记的更多相关文章

  1. laravel 5.6初学笔记

    laravel 5.6初学笔记 http://note.youdao.com/noteshare?id=bf4b701b49dd035564e7145ba2d978b4 框架简介 laravel文档齐 ...

  2. C++ STL初学笔记

    C++  STL初学笔记 更系统的版本见徐本柱的PPT set 在这儿:http://www.cnblogs.com/pdev/p/4035020.html #include <vector&g ...

  3. Spring 初学笔记

    Spring 初学笔记: https://blog.csdn.net/weixin_35909255/article/category/7470388

  4. csapp网络编程初学笔记

    csapp网络编程初学笔记 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型,服务器管理某种资源,并且通过操作来为它的客户提供某种服务 客户端-服务器模型中的基本操作是transacti ...

  5. Python初学笔记之字符串

    一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...

  6. WINDOWS下PHP 的pear DB的安装(本地环境:PHP5.4.15+Apache+mysql)

    因为需要安装phpunit,要先装pear,网上的教程大多数是以双击go-pear.bat开始,但是我安装的php文件夹里压根没有这个文件. 经过几次搜索之后终于找到了办法. 解决步骤如下: 1.下载 ...

  7. 为xampp 安装pear db (database) 模块

    pear channel-update pear.php.netpear install db

  8. python 初学笔记 (一)

    初学python第一天,希望自己真正了解计算机语言,并且做出成效. 写下学习笔记,记录学习进度,娱乐学习,不断成长. python详细介绍: python是什么?运用到哪里?有哪些在使用它? pyth ...

  9. 从Python到Go:初学笔记

    本文记录了我在学习Go的过程时的一些笔记,主要是比较Python和Go之间的差异并作简单描述,以此使Python程序员对Go语言的特性有简略的了解.初学难免有纰漏,欢迎各位批评指正补充交流,谢谢. 数 ...

随机推荐

  1. 2017.10.23 Java 面向对象深入学习---final 关键字、static关键字、匿名对象等

    今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 第一节课 01(面向对象)final关键字概念.avi 02: ...

  2. mayan 游戏真是毒瘤

    如题 真坑呀!!! 可算过了 我率先达到了氧气富有化 先是改变时没有fall.40分 然后是fall函数写慢了 tle 50分 . 上代码 #include<cstdio> #includ ...

  3. 【PC-x86-x64】JDK 32bit与64bit的区别及x64 PC的发展历程【转】

    一次偶然分析的机会: 在进行Minecraft也就是所谓的我的世界游戏的时候,在对局域网进行开放的时候,我的是64bit的JDK,而我同学的是32bit的JDK,所以在进行局域网链接的时候就会出现In ...

  4. 第45章 DCMI—OV2640摄像头—零死角玩转STM32-F429系列

    第45章     DCMI—OV2640摄像头 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com ...

  5. using System.Security.Cryptography

    这个命名空间主要是用来进行加密的一些类. 加密服务: 公共网络(如 Internet)不提供实体之间安全通信的方式. 此类网络上的通信易被读取或甚至被未经授权的第三方修改. 加密有助于防止数据被查看, ...

  6. jeDate日期控件

    http://www.jayui.com/jedate/     这是日期控件官网,可以去里面下载使用 前台 <%@ Page Language="C#" AutoEvent ...

  7. Ajax跨域请求以及乱码解决

    Ajax跨域请求2种解决方法 1 ) 什么叫跨域请求,协议,域名,端口号,其中一样不同都称跨域; 第一种:使用script标签发送请求; //创建一个script标签; var v_element=d ...

  8. Wordpress网站中添加百度统计代码

    百度统计是流量分析平台,帮助收集网站访问数据,提供流量趋势.来源分析.转化跟踪.页面热力图.访问流等多种统计分析服务,同时与百度搜索.百度推广.云服务无缝结合,为网站的精细化运营决策提供数据支持,进而 ...

  9. 汇编:实现C语言的 ||与&&运算

    ;C程序转汇编(或运算链接) DATAS SEGMENT a Dw b dw cc dw d dw m dw n dw string db dup(?) DATAS ends CODES SEGMEN ...

  10. idea中自定义设置xml的头文件的内容

    因为在idea中新建的xml默认的头文件,有时候并不是我们需要的这时候可以通过自定义来解决. 如搭建hibernate的实体类的映射xml. 首先 fiel→settings出现 如下框框 在上面搜索 ...