Smarty实例教学---使用ADODB连接数据库(2) - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- Smarty实例教学---使用ADODB连接数据库(2) (http://www.webasp.net/article/26/25221.htm) |
| -- 作者:未知 -- 发布日期: 2005-06-22 |
| 同样,我在关键的地方加了数标,下面来说明一下它们的含义:
1. 建立一个连接对象$conn,大家在这里要注意的是它的初始不是以$conn = new ADONewConnection($dbType)这样的形式出现的,也就是说 ,ADONewConnection不是一个class,你不能使用new 对它进行初始化.看看它的源码你就会明白,这只不过是一个函数. 2. 这个就不用说了吧?打开一个News的数据库,主机为:localhost, 用户名为root, 密码为"" 3. 一个查询语句,注意,这里要将查询的字段使用AS关键字来重新标识,名称为你在模板中设置的模板变量的名称. 4. 使用Execute来执行这个查询,结果返回一个RecordSet数据集 5. 这里有个方法:$rs->GetArray($num) 这个在上边介绍过,它是要从$rs这个数据集中返回$num行,结果为一个可被Smarty所识别的二维数 据.这样ADODB就自动为我们构建起了这样的结构,而在我们以前的例子中,都是使用一个循环构建这样的数组的. 6. 这一句我看也不用说了吧? 7. 关闭内存中的相关资源. 大家可以看看,整个程序中再没有出现什么while语句,程序整体结构显的非常清楚,这就是为什么ADODB+Smarty是黄金组合的原因.不过话也 说回来了,简单有简单的问题,不知大家想过没有,这里对显示的新闻标题的长度没有控制,也就是说,如果某条新闻标题的长度超出一行显示的范 围,它就是自动折行到下一行,那么整个的版面就会变乱,所说大家自已适自己的情况来决定是否这样使用吧当然,你也可以使用像上一节中介 绍的那样,使用一个循环语句重构这个二维数组,使它符合你的用途,怎么做大家自己去想吧,参考PHPLIB中的做法,上节我介绍过了... 再来看看新闻页吧 ============================================================= $smarty = new MySmarty(); file://建立smarty实例对象$smarty $conn = ADONewConnection("mysql"); file://初始化ADODB $NewsID = $_GET["id"]; file://获取新闻编号 $strQuery = "SELECT vcNewsTitle AS NewsTitle, ltNewsContent AS NewsContent FROM " . $dbName; $smarty->display($row); $conn->Close(); 1. $conn->GetRow($strQuery):这一句返回一个一维数组,返回的形式为: $array = ("NewsTitle"=>"xxxx", "NewsContent"=>"yyyyy...") 简单吧,确实很简单 下面再来看看新闻列表: $smarty = new MySmarty(); file://建立smarty实例对象$smarty $conn = ADONewConnection("mysql"); file://初始化ADODB >file://获取新闻编号 $strQuery = "SELECT iNewsID AS NewsID, vcNewsTitle AS NewsTitle FROM " . $tbName; $smarty->display("newsList.tpl"); 1. GetAll($strQuery):这个函数可是个好东东,它的作用是将$strQuery查询到的所有数据组合成为一个能够被Smarty所识别的二维数组, 记住:它返回的是一个二维数组而不是一个RecordSet,所在你可以程序中直接在3处使用. 后记: 注意这里的大小写问题. 好了,这个Smarty的系列教程到这里就基本已经完成了,我的这几篇初级教程就算是抛砖引玉吧,希望更多的高手将更多的经验写出来,大家共同提高! |
| webasp.net |