A-A+

phpcms get标签sql语句limit无效

2014年12月26日 PHP开源系统 评论 2 条 阅读 160 views 次

PHPCMS中GET标签是非常好用的,GET 标签中的 SQL 语句可以自定义,几乎所有 PHPCMS PC标签所不能完成的功能基本上都可以使用 GET 标签来进行完成,在最新版的 PHP V9中,发现 sql 里面的 limit 无效,limit 对于提取前几条数据是不可缺少的,比如下面的 SQL 语句:

{pc:get sql="SELECT * FROM v9_news ORDER BY id DESC LIMIT 2,5" cache="3600" page="$page" dbsource="discuz" return="data"}

打印这句 SQL 语句就会出错,而在 PHP 中的SQL语句完整的应该是如下 SQL:

SELECT * FROM v9_news ORDER BY id DESC LIMIT 2,5 LIMIT 0,20

这样明显是错误的,而在 PHPCMS 2008 中,使用这样的语句是没有问题的,可能最新版中去掉了 limit 的功能?暂不去管它了,从网上找了两个解决的方法,看下最常用的方法如下:

{pc:get sql="SELECT title,url FROM v9_news where catid=9 and status=99 order by updatetime desc" start="0" num="5"}

LIMIT 换成了 start 和 num 来控制,如果不写 start 的话,则默认为 0 开始。

第二种方法就是注释的办法,将 V9 自带的 LIMIT 0,20语句给注释掉,但这种方法在分页的时候有可能出错,代码如下:

{pc:get sql="SELECT title,url FROM v9_news where catid=9 and status=99 order by updatetime desc limit 0,5--"}

注意 最后的两个 减号,这里还是建议使用第一种的方法。

标签:

2 条留言  访客:2 条  博主:0 条

  1. osblog

    好像比java的难啊,java比较简单

    • smiling

      对 java 是一窍不通啊。

给我留言