万能标签
描述:实现普通查询SQL查询功能的标签
额外参数 说明 必须
@sql SQL语句,强烈建议只用于select类型语句,其他SQL有严重安全威胁,同时不建议直接在SQL语句中使用外部变量,如:$_GET,$_POST等。出现“>”,“,{lt}代替,{elt}代替= 否
@table 表名,不用填写表前缀,当存在@table参数时,忽略@sql参数 否
@order 排序,例如“id DESC” 否
@num 每次返回数据量,默认10 否
@cache 数据缓存时间,单位秒 否
@page 当前分页号,默认$page,当传入该参数表示启用分页,一个页面只允许有一个page,多个标签使用多个page会造成不可预知的问题。 否
@return 返回值变量名称,默认data,返回的是数组需要配合volist标签 否
*字段作为参数 为@table时,可以用字段作为参数 如表里有status字段 可以使用status=1 否
示例A:
//使用@table参数的查询示例
{get table="article" catid="9" page="$page" return="data"}
{volist name="data" id="vo"}
....HTML...
{/volist}
{/get}
<!--分页-->
{$pages|raw}
输出总页数{$data->total()},只有标签使用分页才能使用
示例B:
//普通SQL查询示例
//输出id为18的表名为page的数据 page是单页表 此处表前缀不可忽略
{get sql="select * from yzn_product where catid=18" order="inputtime asc" num="10" return="data" page="$page"}
{volist name="data" id="vo"}
....HTML...
{/volist}
{/get}
<!--分页-->
{$pages|raw}
示例C:
~~~
//比较复杂的示例
{php}
$sql = 'select * from yzn_article where status=1 ';
//接受外部数据
$id = input('id',0);
if($_catid){
$sql .= " `id` = '{$id}' ";
}
$sql .= ' order by inputtime desc';
{/php}
{get sql="$sql" return="data"}
{volist name="data" id="vo"}
....HTML...
{/volist}
{/get}
~~~
主要事项:
1.sql最好避免直接接受外部数据,会存在SQL注入风险!
2.请不要使用此标签处理非SELECT类型的查询语句!
3.page="$page" 存在,同样是开启分页,一个页面只允许一个标签开启使用,否则会出现不可预知的问题!
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。