用DBSQL类加快开发MySQL数据库程序的速度


Posted in PHP onOctober 09, 2006

当你在编写存取MYSQL的数据库程序时,是不是觉得很麻烦:一大套的函数和参数,还要检查调用的结果,更头痛的是每个程序里都要包含数据库名、用户、密码等,想修改都不容易。但如果你使用PHPLIB里的DBSQL类,这些问题都会迎刃而解的。这篇文章将教你如何使用DBSQL类。  

一、获得DBSQL  

怎么获得DBSQL呢,有两个办法:  
- 由于DBSQL是PHPLIB的一部分,你可以从本站或http://phplib.netuse.de下载一份PHPLIB  
- 直接从本站下载DBSQL类,我已经把它独立了,并做了一些小的修改。下载地址:http://www.phpuser.com/programs_and_code/codedetail.php?id=3  

二、修改DBSQL文件。  
打开文件,找到大约138行处,把$Host, $Database, $User, $Password等四个变量改成你机器上的值。  

三、使用DBSQL  

就这么简单,可以派上用场了了,下面是一个典型的例子(这里我们假设DBSQL类存放在db.php文件里):  
<?  
01 require "db.php";  
02 $db=new DBSQL;  
03 $db->connect();  
04 if ($db->Link_ID)  
{  
05 $db->query("SELECT id, name FROM contact WHERE id > 100 AND id  
< 200");  
06 if ($db->nf())  
{  
07 while ($db->next_record())  
{  
08 echo "id=", $db->f("id");  
09 echo "<br>";  
10 echo "name";  
11 $db->p('name');  
12 echo "<br>";  
}  
}  
13 $db->free_result();  
}  
?>  
我来逐行解释一下:  
01-将db.php文件包含进来  
02-创建一个DBSQL类的实例,变量名为:$db  
03-调用DBSQL的connect()方法,连接数据库。这行的作用跟mysql_pconnect(host,  
db, passwd)一样  
04-通过检查$db的属性Link_ID的值来判断连接是否成功。一般来说只要配置没问题,这步可以省略的  
05-如果连接没问题,就调用DBSQL类的query方法来执行查询  
06-DBSQL类的nf()函数返回查询后返回的记录的条数,跟mysql_num_rows()的作用一样。如果找到了记录,继续执行  
07-用一个while循环,以DBSQL的next_record()方法为条件。next_record()方法把DBSQL类的结果的指针往下移一条,如果到了结尾,就返回假值  
08-用DBSQL类的f()方法取回查询结果当前一行的某个字段的值。该方法的参数是字段的名字,如$db->f("id")  
11-用DBSQL类的p()方法。p()方法与f()方法不同的是它把查询结果当前一行的某个字段的值直接输出了。该方法的参数是与f()方法一样也是字段的名字,如$db->p("id")  
13-释放PHP占用的内存。相当于调用了mysql_free_result函数  

DBSQL的基本用法就是这样,当然还有其他一些,我在下面来介绍。  

四、其他内容  

Auto_free属性:如果设为真值,当调用next_record()方法到达查询结果的结尾时,DBSQL自动执行free_result()方法,释放占用的内存  DebugMode属性:如果设为真值,在执行query()方法时,会把查询的SQL语句打印出来,所以在做调试时特别有用  

seek()方法:移动DBSQL查询结果的指针,第一个为0  
num_rows()方法:跟nf()方法一样,返回查询结果的记录条数  
metadata()方法:以表名为参数,返回一个包括该表的结果的数组 

PHP 相关文章推荐
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
php实现的RSS生成类实例
Apr 23 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
PHP仿微信发红包领红包效果
Oct 30 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 PHP
一个简洁的多级别论坛
Oct 09 #PHP
用ODBC的分页显示
Oct 09 #PHP
为查询结果建立向后/向前按钮
Oct 09 #PHP
投票管理程序
Oct 09 #PHP
用PHP和ACCESS写聊天室(九)
Oct 09 #PHP
用PHP和ACCESS写聊天室(八)
Oct 09 #PHP
用PHP和ACCESS写聊天室(七)
Oct 09 #PHP
You might like
处理php自动反斜杠的函数代码
2010/01/05 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
python 运算符 供重载参考
2009/06/11 Python
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
django用户登录和注销的实现方法
2018/07/16 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
Python中pass的作用与使用教程
2020/11/13 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
三严三实对照检查材料
2014/08/25 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
教师研修随笔感言
2015/11/18 职场文书
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js