ado|连接数据库
同样,我在关键的地方加了数标,下面来说明一下它们的含义:
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中的做法,上节我介绍过了...
再来看看新闻页吧
=============================================================
news.php
=============================================================
/*********************************************
*
* 文件名: news.php
* 作 用: 新闻显示程序
*
* 作 者: 大师兄
* Email: teacherli@163.com
*
*********************************************/
include_once("./comm/mySmarty.class.php"); file://包含smarty的扩展类文件
include_once("./comm/adodb/adodb.inc.php"); file://包含ADODB主执行文件
$smarty = new MySmarty(); file://建立smarty实例对象$smarty
$conn = ADONewConnection("mysql"); file://初始化ADODB
$conn->Connect("localhost", "root", "", "News"); file://连接数据库
$NewsID = $_GET["id"]; file://获取新闻编号
$NewsType = $_GET["type"]; file://要显示的新闻类型
switch($NewsType)
{
case 1:
$dbName = "tb_news_CH";
break;
case 2:
$dbName = "tb_news_IN";
break;
case 3:
$dbName = "tb_news_MU";
break;
}
$strQuery = "SELECT vcNewsTitle AS NewsTitle, ltNewsContent AS NewsContent FROM " . $dbName;
1. $row = &$conn->GetRow($strQuery); file://返回一个一维数组,下标为模板变量名
$smarty->display($row);
unset($row);
$conn->Close();
?>
=============================================================
说明一下关键的地方,其实在news.php中也只有一个地方值的说明一下了.
1. $conn->GetRow($strQuery):这一句返回一个一维数组,返回的形式为:
$array = ("NewsTitle"=>"xxxx", "NewsContent"=>"yyyyy...")
明白如果使用$smarty($array)后Smarty会干什么吗?对了,就是相当于:
$smarty->assign("NewsTitle", "xxxx");
$smarty->assign("NewsContent", "yyyyy...");
简单吧,确实很简单
下面再来看看新闻列表:
================================================================
newsList.php
================================================================
/*********************************************
*
* 文件名: newsList.php
* 作 用: 新闻列表显示程序
*
* 作 者: 大师兄
* Email: teacherli@163.com
*
*********************************************/
include_once("./comm/mySmarty.class.php"); file://包含smarty的扩展类文件
include_once("./comm/adodb/adodb.inc.php"); file://包含ADODB主执行文件
$smarty = new MySmarty(); file://建立smarty实例对象$smarty
$conn = ADONewConnection("mysql"); file://初始化ADODB
$conn->Connect("localhost", "root", "", "News"); file://连接数据库
>file://获取新闻编号
$NewsType = $_GET["type"]; file://要显示的新闻类型
switch($NewsType)
{
case 1:
$tbName = "tb_news_CH";
break;
case 2:
$tbName = "tb_news_IN";
break;
case 3:
$tbName = "tb_news_MU";
break;
}
$strQuery = "SELECT iNewsID AS NewsID, vcNewsTitle AS NewsTitle FROM " . $tbName;
1. $rs = &$conn->GetAll($strQuery);
2. $smarty->assign("NewsType", $NewsType); file://这一句为新闻列表中的链接服务
3. $smarty->assign("NewsList", $rs);
unset($rs);
$conn->close();
$smarty->display("newsList.tpl");
?>
================================================================
分别来说明一下:
1. GetAll($strQuery):这个函数可是个好东东,它的作用是将$strQuery查询到的所有数据组合成为一个能够被Smarty所识别的二维数组,
记住:它返回的是一个二维数组而不是一个RecordSet,所在你可以程序中直接在3处使用.
2. 这里是为了给新闻标题做链接时要GET参数type=XX而做的
后记:
大家在使用ADODB时有几个地方要注意:
1. 初始化: 初始化的方式不是使用new,因为它不是一个对象
2. 方 法: 基本上每个方法都是以大写字母开头大小写混合的名称,这一点好像与*NIX的习惯有些不同,也不同于PHP的整体风格,所以
注意这里的大小写问题.
好了,这个Smarty的系列教程到这里就基本已经完成了,我的这几篇初级教程就算是抛砖引玉吧,希望更多的高手将更多的经验写出来,大家共同提高!

想了解更多关于开源的内容,请访问:51CTO鸿蒙开发者社区https://ost.51cto.com运行环境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、创建应用点击File->newFile->CreateProgect。选择模版:【OpenHarmony】EmptyAbility:填写项目名,shici,应用包名com.nut.shici,应用存储位置XXX(不要有中文,特殊字符,空格)。CompileSDK10,Model:Stage。Device

使用Java的File.length()函数获取文件的大小文件大小是在处理文件操作时很常见的一个需求,Java提供了一个很方便的方法来获取文件的大小,即使用File类的length()方法。本文将介绍如何使用该方法来获取文件的大小,并给出相应的代码示例。首先,我们需要创建一个File对象来表示我们想要获取大小的文件。以下是创建File对象的方法:Filef

php blob转file的方法:1、创建一个php示例文件;2、通过“function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })}”方法实现Blob转File即可。

使用Java的File.renameTo()函数重命名文件在Java编程中,我们经常需要对文件进行重命名的操作。Java提供了File类来处理文件操作,其中的renameTo()函数可以方便地重命名文件。本文将介绍如何使用Java的File.renameTo()函数来重命名文件,并提供相应的代码示例。File.renameTo()函数是File类的一个方法,

使用java的File.getParentFile()函数获取文件的父目录在Java编程中,我们经常需要操作文件和文件夹。当我们需要获取文件的父目录时,可以使用Java提供的File.getParentFile()函数来完成。本文将介绍如何使用这个函数并提供代码示例。Java中的File类是用于操作文件和文件夹的主要类。它提供了许多方法来获取和操作文件的属性

使用java的File.getParent()函数获取文件的父路径在Java编程中,我们经常需要操作文件和文件夹。有时候,我们需要获取一个文件的父路径,也就是该文件所在文件夹的路径。Java的File类提供了getParent()方法用于获取文件或文件夹的父路径。File类是Java对文件和文件夹的抽象表示,它提供了一系列操作文件和文件夹的方法。其中,get

如何使用Java中的File.delete()方法删除文件或目录?概述:在Java中,我们可以使用File类的delete()方法来删除文件或目录。该方法用于删除指定的文件或目录。但是需要注意的是,该方法只能删除空目录或者没有被其他程序打开的文件。如果文件或目录删除失败,可以通过捕获IOException异常来查找具体原因。步骤一:导入相关的包首先,我们需要

基本知识Android架构Kernel内核层漏洞危害极大,通用性强驱动由于多而杂,也可能存在不少漏洞Libaries系统运行库层系统中间件形式提供的运行库包括libc、WebKit、SQLite等等AndroidRunTimeDalvik虚拟机和内核库FrameWork应用框架层提供一系列的服务和API的接口活动管理器内容提供器视图资源管理器通知管理器Application应用层系统应用主屏幕Home、联系人Contact、电话Phone、浏览器Browser其他应用开发者使用应用程序框架层的A


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具