PHP脚本数据库功能详解(下)


Posted in PHP onOctober 09, 2006

用类加快PHP的数据库开发

数据库的访问函数较多,使用不当会降低效率,甚至导致错误。而PHP的本身就是开放的和可扩充的,很多人为它开发各种功能的源代码。每一个PHP程序员都应该善于继承他人的成果,节省时间和精力。站在巨人的肩膀上,才能看得更远。当然,你也可以把你的代码共享出来,体会自己的劳动被承认和创造价值而带来的成就感。

使用数据库类,可以使我们完全不必考虑具体的数据库类型,而专注于程序的开发上。

众多的开发工具包中,PHPLib是性能较稳定、功能较完善的一个。PHPLib可以在http://phplib.netuse.de/ 获得。它包含了数据库的支持类。以MySQL数据库为例,PHPLib自带名为DB_Sql的类。它包装了数据库的连接、查询、取结果、数据库表的遍历等功能。

使用数据库类,可以使我们完全不必考虑具体的数据库类型,而专注于程序的开发上。即使数据库系统类型换了,程序代码也不用改。同时,数据库类提供了完整而健壮的数据库访问方法,这可能是使用类的包装的最大的优势了。

下面,我们就使用PHPLib提供的数据库类,来访问我们刚才建立的数据库,并对内容进行显示。

〈?

require "db_mysql.php";

//包含数据库类的生成文件

$db=new DB_Sql;

//声明数据库类的实例

$db-〉connect("ResumeDB","localhost", "root", "");

//连接数据库服务器

//提供的参数依次为:数据库名,主机名,用户名,用户密码

if ($db-〉Link_ID)

//判断是否正确建立连接

{

$db-〉query("select ID,Name,Intro FROM Resume");

//查询

if ($db-〉nf())

//判断结果集是否为空

{

while ($db-〉next_record())

//取得下一行记录值,直到记录集内容取完

{

echo "ID:", $db-〉f("ID"); //f()函数返回当前记录某个子段的值

echo "〈br〉";

echo "姓名:";

$db-〉p("Name");

//p()函数直接打印某个子段的值

//等价于echo $db-〉f("name")

echo "〈br〉";

echo "简介:";

echo $db-〉f("Intro");

echo "〈br〉";

echo "〈a href= "download.php?ID=".$db-〉f("ID").""〉查看Word文档〈/a〉";

echo "〈br〉〈hr〉";

}

}

$db-〉free ();

//释放资源

}

?〉

从上面的流程可以看出,用类访问数据库的方法和直接访问数据库的方法基本相同。不同的是,这里我们调用的方法都是类的方法,而不是具体针对某种数据库的函数。由于代码和具体数据库类型的分离,使得当数据库系统改变的时候,我们不用改变程序代码,只要改变基类的实现方法即可。

如果结合使用PHPLib模板进行设计的话,即可实现程序与显示的分离。也将使得程序结构清晰,网页美工设计制作方便。

简便的用法、合理的任务分配、合乎思维的对象包装,将使得网站开发效率大大提高。

附:代码测试平台

以上程序代码全部在下面的平台测试通过

RedHat Linux 6.1+Apache1.3.12+

PHP4.0+MySql3.22.32

数据库的安装配置过程为:

cd /usr/local/src/mysql*

./configure --refix=/usr/local/mysql

make

make install

Apache的安装配置过程为:

cd /usr/local/src/apache*

./configure --prefix=/usr/local/apache --enable-shared=max

make

make install

PHP的安装配置过程为:

cd /usr/local/src/php*

./configure --with-apxs=/usr/local/apache/bin/apxs  

--with-config-file-path=/usr/local/

apache/conf  

--with-mysql=/usr/local/mysql  

--enable-debug=no  

--enable-track-vars

php.ini配置过程为:

拷贝php.ini-dist到/usr/local/

apache/conf/php.ini

编辑httpd.conf,把下面两行的注释去掉

AddType application/x-httpd-php .php .php3

AddType application/x-httpd-php-source .phps

<<全文完>>

PHP 相关文章推荐
Cannot modify header information错误解决方法
Oct 08 PHP
php面向对象全攻略 (九)访问类型
Sep 30 PHP
在mysql数据库原有字段后增加新内容
Nov 26 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
php单例模式实现方法分析
Mar 14 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
CakePHP框架Model函数定义方法示例
Aug 04 PHP
PHP脚本数据库功能详解(中)
Oct 09 #PHP
PHP脚本数据库功能详解(上)
Oct 09 #PHP
屏蔽浏览器缓存另类方法
Oct 09 #PHP
使用网络地址转换实现多服务器负载均衡
Oct 09 #PHP
php抓即时股票信息
Oct 09 #PHP
利用PHP动态生成VRML网页
Oct 09 #PHP
一个SQL管理员的web接口
Oct 09 #PHP
You might like
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
php验证码生成代码
2015/11/11 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
Python列表解析配合if else的方法
2018/06/23 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
创先争优公开承诺书
2014/08/30 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
小时代观后感
2015/06/10 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
七个Python必备的GUI库
2021/04/27 Python