PHP+Smarty环境下网页与数据库的连接和访问
2015-04-29黄玲娜
黄玲娜
摘 要: 在PHP开发环境中,Smarty模板是一种处于领先地位的主流模板,能高效的实现网站前台和数据库后台之间的交互,将后台数据库中的数据信息呈现在前台网页上。Smarty模板将与数据库的连接等操作封装在类中,在以后的开发中只需要调用即可;利用PHP文件实现对数据库的代码控制,将对数据库的访问结果通过tpl模板文件显示,这种做法使得代码控制和页面美工分离开来,开发过程更加清晰明了。
关键词: PHP; Smarty; 网站开发; 数据库访问
中图分类号:TP311.1 文献标志码:A 文章编号:1006-8228(2015)12-65-03
Connection and access database in the PHP+Smarty environment
Huang Lingna
(Wuxi City College of Vocational Technology, Jiangsu, Wuxi 214000, China)
Abstract: In PHP development environment, the Smarty template is a mainstream template which can realize the interaction between the front desk and the database. The data information in the background database is presented in the front page. Smarty template encapsulates the operations of connection with database and so on in the class, in the future development only need to call. The PHP file is used to achieve the code control of the database, the database access results are displayed through the TPL template file, this approach separates the code control and the page art, makes the development process more clear.
Key words: PHP; Smarty; Web site development; database access
0 引言
随着电子商务的发展,越来越多的电商网站如雨后春笋般涌现,用户在网站上浏览商品信息,购买中意的商品,这种行为已经越来越流行。当用户在网站前台浏览商品信息的时候,往往希望网站能以简洁明了、方便直观的形式展示各种商品,这就需要网站开发者在开发网站的过程中充分考虑到用户的需求。
PHP语言是一种在服务器上运行的开发语言,是一种类似ASP的服务器端脚本语言[1],往往和超文本嵌入式标记语言共同使用来实现动态网站。PHP技术在存取数据和兼容性方面更具有竞争力,提供了一套比较完善的标准化数据库接口[2]。
在网站开发过程中,PHP具有以下优势[3]。
⑴ 安全性高:PHP是开源软件,具有公认的安全性能。
⑵ 跨平台:支持几乎所有的操作系统平台以及多种Web服务器。
⑶ 支持广泛的数据库:支持多种主流与非主流的数据库。
⑷ 执行速度快:占用的系统资源少,因此执行效率高。
⑸ 免費:可以为网站经营者节省很大一部分开支。
⑹ 支持面向对象与过程:可向下兼容。
⑺ 内嵌Zend加速引擎:性能稳定快速。
Smarty模板由于具有强大的功能和快速的运行速度,在PHP众多模板中一直处于领先地位。Smarty其实就是一种使用PHP编写的PHP模板引擎,它将整个程序分为视图(用户界面)和逻辑控制(PHP代码)。这样使得修改程序和页面美工分离开来,互不影响。Smarty运行速度极快;效率高;模板只需被解析一次,无需重复;只需重新编译一次修改过的模板文件[4]。Smarty可以整合ADODB技术,在对数据库的操作方面具有结构清晰、简单明了,使用方便的特点。在网站开发过程中, 使用PHP+Smarty+ADODB技术能高效的在网页前台与后台数据库之间进行数据的交互。
1 将Smarty模板的配置方法封装到类
在实际开发过程中,为了更有效的利用程序,往往将Smarty模板的配置方法封装在一个类中,在后期使用中只需要实例化该类,就可以调用定义好的方法。同时这种做法更有利于应用程序的可移植性,即使更换了服务器,也不需要更改绝对路径。Smarty的配置文件往往包括以下三个文件。
⑴ System.class.inc.php:定义数据库的连接、操作和分页等类。
⑵ System.inc.php:完成对System.class.inc.php中定义的类的实例化操作。
⑶ System.smarty.inc.php:定义Smarty的环境配置类,主要是对四个路径的定义。
2 通过PHP文件实现PHP代码控制
PHP文件往往被用作对应用程序的逻辑控制,可以在PHP文件中加载System.inc.php文件以方便在后续使用预先定义好的类,同时在PHP文件中实现对数据库的查询,得到查询结果集,并将结果存入模板变量,指定输出tpl模板。
例如想从数据库中分页查询商品信息,要求每页显示6条记录,其代码设置如下:
<?php
header("Content-type:text/html;charset=UTF-8");
include_once("system/system.inc.php");
$zx2=$seppage->ShowDate("select * from
tb_shangpin A,tb_type B where
A.typeid=B.typeid ORDER BY addtime desc",
$conn,6,$page);
//调用分页类中的分页函数实现分页查询
$smarty->assign('zx2',$zx2);
//定义模板变量用来记录每页显示的具体信息
$smarty->assign('zx2_page',$seppage->ShowPage
("产品","个",$_GET['page_type']));
?>
3 通过tpl文件遍历输出数据库数据
Tpl模板文件中包含了页面的所有静态元素,如想在文件中加入注释、变量、函数都需要使用定界符。换句话说,模板文件中不允许直接出现PHP代码。
在模板中可以使用{section}循环控制遍历输出查询结果,每行输出一条记录,每页显示6条记录。效果图片如图1所示。
{section name=new_id loop=$zr2}
{/section}