PEAR::DB的二次封装

仿陌陌遇见社交聊天APP源码 网页聊天 LBS地址类社交APP 含Java服务端、PhP管理端等 因原来创业团队解散,此产品对外整套系统出售源码。 第一,APP开发于2013年,相对创作思想,交互模式,UI模式已经落后了,故此才将APP有出售的想法。 第二,APP项目没有申请著作权,对各位后续开发都提供了方便,解决了后顾之忧。 第三,第三方开发者可以自行采用本架构和底层,自行做演进开发,也可自行做UI创新。 APP说明:         产品包含Android端以及IOS端,包含后 阅读详情

PEAR::DB的二次封装

本贴转载自:http://blog.youkuaiyun.com/dfmz007/archive/2004/07/29/55911.aspx

1. ? 2.
? 3. require_once("DB.php");
? 4.
? 5. //
? 6. // 简单够用的DB封装库,继承自PEAR::DB
? 7. // 连接参数$dsn由类构造时传入
? 8. // 使用方法
? 9. // 1 声明类的实体 $db = new PEAR_DB("数据库类型://用户名:用户口令@服务器地址/使用的数据库名称");
? 10. // 2 输入SQL查询 $db->query($SQL);
? 11. // 3 取出结果集中的一行数据 $db->fetchRow();
? 12. // 4 直接取数据使用 $db->record['var_name']; (若执行的SQL语句无返回结果集,3-4 两步可跳过,比如 INSERT ? UPDATE DELETE )
? 13. // 5 关闭数据库连接 $db->disconnect();
? 14. //
? 15. // Build 20040625
? 16. //
? 17. class PEAR_DB extends DB
? 18. {
? 19.
? 20. var $pConnect = false; // 持续连接开关
? 21. var $AutoFree = true; // 自动释放结果集开关
? 22. var $HaltOnErr = true; // 出错挂起开关
? 23. var $AdminMail = ""; // 管理员邮箱
? 24. var $DEBUG = true; // 调试开关
? 25. var $Version = "dxDB Build 20040625"; // 版本号记录
? 26.
? 27. var $dsn = "";
? 28. var $obj = null;
? 29. var $result = null;
? 30. var $record = null;
? 31.
? 32. var $QueryNo = 0; // 查询次数,调试时使用
? 33. var $ErrNo = 0; // 错误号记录
? 34. var $ErrMsg = ""; // 出错信息记录
? 35.
? 36. function PEAR_DB($dsn = "mysql://root:root@localhost/test")
? 37. {
? 38. $this->dsn = $dsn;
? 39. $options = array(
? 40. 'debug' => 2,
? 41. 'portability' => DB_PORTABILITY_ALL,
? 42. 'persistent' => $this->pConnect,
? 43. );
? 44. $this->obj = DB::connect($this->dsn, $options);
? 45. if(DB::isError($this->obj)){
? 46. $this->halt();
? 47. }
? 48. $this->obj->setFetchMode(DB_FETCHMODE_ASSOC);
? 49. }
? 50.
? 51. //
? 52. // 提交SQL查询,返回执行后的结果集
? 53. // 根据 $this->DEBUG 开关打印查询语句以及执行时间
? 54. //
? 55. function query($SQL, $offsetORcount = -1, $num = -1)
? 56. {
? 57. $this->QueryNo ++;
? 58. if($this->result != NULL && $this->AutoFree) $this->result->free();
? 59. if(!empty($SQL)){
? 60. $QueryTime_Start = microtime();
? 61. $SQL = str_replace(";", " ", $SQL);
? 62. if($offsetORcount != -1){
? 63. if($num == -1){
? 64. //使用形如 LIMIT n 的格式,只查询前n条记录
? 65. $SQL .= " Limit {$offsetORcount}";
? 66. }
? 67. else{
? 68. //使用完整的 LIMIT m, n 格式,查询第m条起n条记录
? 69. $SQL .= " Limit {$offsetORcount}, {$num}";
? 70. }
? 71. }
? 72. $this->result = $this->obj->query($SQL);
? 73. $QueryTime_End = microtime();
? 74. if($this->DEBUG){
? 75. //若有Debug参数,打印出SQL的相关信息。
? 76. list($ST_mSec, $ST_Sec) = explode(' ', $QueryTime_Start);
? 77. list($ET_mSec, $ET_Sec) = explode(' ', $QueryTime_End);
? 78. $ExeTime = round((($ET_Sec - $ST_Sec) + ($ET_mSec - $ST_mSec)), 6);
? 79. print("Query:{$this->QueryNo} ExecuteTime:{$ExeTime}(S) SQL:{$SQL}
");
? 80. }
? 81. if(DB::isError($this->result)){
? 82. $this->halt();
? 83. }
? 84. }
? 85. return $this->result;
? 86. }
? 87.
? 88. function fetchRow()
? 89. {
? 90. $this->record = $this->result->fetchRow();
? 91. return $this->record;
? 92. }
? 93.
? 94. function numRows()
? 95. {
? 96. return $this->result->numRows();
? 97. }
? 98.
? 99. function free()
? 100. {
? 101. if($this->result != null) $this->result->free();
? 102. }
? 103.
? 104. function disconnect()
? 105. {
? 106. $this->free();
? 107. return $this->obj->disconnect();
? 108. }
? 109.
? 110. //
? 111. // 记录可能产生的错误
? 112. //
? 113. function logErr()
? 114. {
? 115. $this->ErrNo = $this->obj->errorNative();
? 116. $this->ErrMsg = $this->result->getMessage();
? 117. }
? 118.
? 119. //
? 120. // 数据库出错后的处理函数
? 121. // 根据$this->Con_HaltOnErr开关决定是否显示错误报告并挂起程序
? 122. //
? 123. function halt($Msg = "")
? 124. {
? 125. if($this->HaltOnErr){
? 126. ob_end_clean();
? 127. $Time = date('Y-m-d H:i:s');
? 128. $Error = $this->result->getMessage();
? 129. $Errno = $this->obj->errorNative();
? 130. $Str = "
? 131.
? 132.
? 133.
? 134. Database Error
? 135.
? 136.
? 137.
? 138.


? 139.

 


? 140.

数据库好象发生了一些微小的错误.


? 141. 请按浏览器的 刷新 ? 按钮重试


? 142. 或者联系 技术支持信箱

? 143.

给您带来不便与困扰,我们着实深感抱歉...


? 144.
? 154.

? 155.
? 156.
? 157. ";
? 158. print($Str);
? 159. exit();
? 160. }
? 161. else{
? 162. $this->logErr();
? 163. }
? 164. $this->Free();
? 165. }
? 166.
? 167. function version()
? 168. {
? 169. return $this->Version;
? 170. }
? 171.
? 172. }
? 173.
? 174. ?>

posted on 2004年07月29日 10:53 PM
?

??? ??? ???
Pear Admin Layui - 轻量级开源中后台框架的快速开发实践指南 本文详细介绍了Pear Admin Layui这一轻量级开源中后台框架的快速开发实践。通过5分钟快速上手指南、核心功能实战解析以及高效开发技巧,帮助开发者快速掌握该框架的应用,显著提升内部管理系统的开发效率。特别适合需要快速交付的项目场景。 阅读详情

相关推荐

【保研面试】线性代数面试复习

线性相关和无关 有向量组A,a1,a2…an , 如果存在不是全为0的k1,k2…kn,满足 a1 * k1 + a2 * k2… an * kn = 0 则向量组A称为线性相关(可以跟向量组A共面联系,即可以通过几个向量,表示出另外几个向量,故称为线性相关) 极大线性无关组 设有向量组A a1,a2…an(本身为线性相关) :若选出r个向量,满足以下条件 (1)向量组 r : 线性无关; (2) 向量组A中任意r+1个向量(若有的话)都线性相关, 则向量组r 是向量组A的一个极大线性无关组(简称为

云端筑梦师 6311

glog的二次封装

二次封装glog的原因在于,现在有多个语言的不同服务在跑,为了日志管理方便,会统一下日志级别及日志显示格式。 Go这边的日志一直用的glog.我之前也介绍过,这是个很好用的日志包,但它有它的一套定义,要统一风格的话, 只能在其基础再封装一层,以满足通用的INFO/WARN/ERROR/FATAL/DEBUG定义之类。     这是我初次封装后的效果:                 看起

拙言的专栏 4145

VScode+MPLAB AI助手:Microchip MCU开发全流程实战解析

本文详细解析了如何使用VScode搭配MPLAB AI助手进行Microchip MCU开发的完整流程。从环境配置、工程创建到代码生成与调试,全面介绍了AI助手在提升开发效率、优化代码和故障排除方面的实际应用,为嵌入式开发者提供了一套高效的开发解决方案。

hh234的博客 1131

你必须要知道的10款APP开发框架

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34315189的博客 1863

ST电机库实战:从状态机到稳健启动流程的深度解析

本文深度解析了ST电机库中状态机的核心作用与稳健启动流程。状态机作为电机控制的“交通指挥官”,通过IDLE、CHARGE_BOOT_CAP、ALIGNMENT等一系列状态的严格跳转,确保了永磁同步电机(PMSM)和直流无刷电机(BLDC)的安全启动与可靠运行,是避免硬件损坏和实现平稳控制的关键。

weixin_29161785的博客 226

手把手教你用示波器搞定PCIe 5.0 REFCLK时钟信号测量(附完整参数解读)

本文详细介绍了如何使用示波器进行PCIe 5.0 REFCLK时钟信号测量,包括示波器与探头的选择、关键参数的测量方法及解读,以及实战中的常见问题与解决方案。通过手把手教学和完整参数解读,帮助硬件工程师高效完成时钟信号测量,确保系统稳定性。

weixin_28704565的博客 359

关于PEAR DB的使用

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

phper老杨 989

[Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下

本文记述了笔者设计并实现以±12V供电电压输出1KHZ~10KHZ频率连续可调的方波、三角波和正弦波的过程。其中,方波输出电压峰峰值为12V(误差<20%),占空比可调、三角波输出电压峰峰值为8V(±20%),正弦波输出电压峰峰值≥1V。

lgc0208的博客 4万+

PEAR:PHP扩展与应用库

1. PEAR简介 PEAR:PHP Extension and Application Repository,php扩展与应用库。 pear的使命:提供可复用的组件,引领php的创新。 提供PHP代码的包和应用程序。

yonggang7的专栏 3843

YOLOv11涨点改进| TGRS 2026 顶刊| 注意力改进篇| 引入MSEA多尺度边缘感知注意力,助力红外小目标检测、遥感目标检测、工业缺陷检测、图像去雨雾任务高效涨点

🔥本文提出了一种基于MSEA多尺度边缘感知注意力的YOLOv11改进模型,通过增强网络对边缘、纹理和细粒度信息的感知能力,显著提升复杂背景下的目标检测性能。MSEA模块采用多尺度空洞卷积提取上下文特征,并通过边缘监督和注意力融合机制强化目标边界信息。实验表明该方法在小目标、边界模糊目标和复杂纹理目标检测任务中表现优异,尤其在遥感、工业缺陷和红外检测等场景具有显著优势。文章详细介绍了MSEA的结构原理、核心代码实现、模块配置方法以及三种YOLOv11改进方案.

Ai缝合怪、助力小伙伴高效发论文 185

YOLOv11改进策略【卷积层】| CVPR2025 GBConv轻量门控瓶颈卷积 低秩瓶颈降参 + 门控聚焦形态,强效捕捉纤细目标

裂缝形态不规则、纹理纤细,传统卷积参数大、计算冗余,且无法动态聚焦裂缝形态;背景噪声强易干扰特征提取,需要轻量且能自适应聚焦裂缝形态的卷积单元,因此提出轻量门控瓶颈卷积 GBC。

Limiiiing的博客 853

重新封装的PHPLib DB类(推荐简单项目使用本类库)

重新封装的PHPLib DB类 (推荐简单项目使用本类库)为了便于自己的开发,但是又不想使用ADODB、PEAR::DB这样的庞然大物,就在PHPLib DB类的基础上、参考PEAR::DB类,封装了自己的DB类,简单好使,非常方便。目前只针对MySQL有效,没什么技术含量,姑且为参考。使用本类库只是需要把下面代码保存为database.inc.php或者database.class.php,在自

heiyeluren的blog(黑夜路人的开源世界) 2829

将MathType、zotero嵌入Word、WPS

最近也是慢慢学起了写文稿之类的内容,在写论文的时候,肯定会遇到一些数学公式的插入,如果使用wps、word等自带的插入公式,一般不符合投稿期刊的格式要求,而且不方便、不美观,故开始研究MathType 这款插入公式的工具。

2401_83617940的博客 2276

数据库抽象层--常用的有4种主流数据库抽象层

有4种主流数据库抽象层: Metabase、PEAR:DB、PDO及ADODB。   从应用来看,ADODB和PEAR:DB最受欢迎(因为PEAR是被捆绑在PHP目录中的,但PEAR:DB的效率问题一直引人诟病)。   从PHP 5开始出现的PDO及ADODB(其中包括PDO、MySQLi的底层实现)已经逐渐普及。   也有一些更新的抽象类值得一用,PEAR:MDB(版本名称为PEA

乐杨俊浅谈LAMP 2137

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

30分钟快速上手Pear Admin Flask:新手完整配置指南

对于想要快速构建后台管理系统的Python开发者来说,Pear Admin Flask无疑是一个极佳的选择。这个基于Flask框架的开源项目提供了完整的用户管理、权限控制、系统监控等功能,让开发者能够专注于业务逻辑的实现。本文将带你从零开始,完整掌握Pear Admin Flask的安装配置流程。 ## 为什么选择Pear Admin Flask? 在众多Python Web框架中,Flask

gitblog_01195的博客 1277

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

PEAR_Pager的使用

索引 1. 前言 2. 安装 3. 简单实例 4. 应用案例 5. 参数摘要 6. 方法摘要 7. 后记 8. 参考资料 1. 前言本文中,Hick 先介绍一下 PEAR 的 Pager 包。然后谈谈分页的思路,再结合实际运用,最后对它的部分方法和属性作一下介绍。顺便提一下

1082

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

php 的pg_connect() 和 pear 的 区别??????

目前好像有点明白了,pear就是把所有的底层函数全部封装起来,作成一个个具体的函数。pear里面连接postgres也是用pg_connect()!@!right? 

shuicg的专栏 851

Pear Admin Flask:30分钟构建企业级Python后台管理系统的完整指南

想要快速构建功能完善的后台管理系统?Pear Admin Flask是你的终极解决方案。这款基于Flask框架的Python后台管理系统,专为开发者提供开箱即用的权限控制、数据可视化和模块化架构,让你在30分钟内从零搭建企业级管理平台。无论你是Python新手还是经验丰富的开发者,这套完整指南将带你掌握快速部署、功能扩展和个性化定制的核心技巧。 ## 从零开始:5步搭建你的第一个管理后台 ##

gitblog_00382的博客 489

Pear Admin Flask:企业级后台系统的智能硬件套装解决方案

你是否曾遇到这样的困境:项目紧急上线却卡在用户认证模块?团队协作开发时权限管理混乱?系统运行中出现问题却难以追溯?Pear Admin Flask就像一套功能完备的智能硬件套装,不仅提供了基础"电路板"(框架核心),还预装了"传感器"(用户认证)、"控制器"(权限管理)和"显示屏"(数据可视化),让你无需从零焊接每个元件,直接组装业务功能即可快速交付。 ## 问题:企业级后台开发的三大核心痛点

gitblog_00359的博客 385

Pear Admin Flask:基于Flask的企业级后台管理系统技术深度解析与实战指南

Pear Admin Flask是一款基于Flask框架的企业级后台管理系统,专为Python开发者提供模块化、可扩展的快速开发解决方案。该系统集成了RBAC权限控制、数据可视化、系统监控等核心功能,通过开箱即用的架构设计,帮助开发者快速构建功能完善的管理后台,显著提升开发效率。 ## 🔧 技术价值定位:解决企业级后台系统开发的核心痛点 在企业级应用开发中,后台管理系统是每个项目的基础设施,

gitblog_00658的博客 304

pear mdb 数据库抽象层

关于 php 的数据库 api 对于不同的数据库有不同的函数,一直以来就有人尝试使用 php 的面向对象的功能进行一些封装。其中有比较著名的adodb,phplib。后来举世瞩目的 pear 项目中的 pear db 更是其中的佼佼者。这些用面向对象对数据库 api 进行的封装的包一般称为数据库抽象层。本文介绍的是 pear 中对 pear db 进行融合 metabase 库的一些优秀功

guoguo1980的专栏 1609
上一篇: 在线人数的统计方法
下一篇: 7.30-7.31
cfyy
博客等级 码龄22年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值