网站是discuz,出现问题是插件,以前用的mysql5.5.49+PHP5.3.29,没有问题,正常使用
昨天换了服务器,mysql5.5.54+PHP5.3.29,就出现下面的问题了
请教高手,如何解决这个错误,小白很苦恼
Discuz! Database Error(1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20,20' at line 1
SELECT m.username,m.uid,v.level,v.czz,v.jointime,v.year_pay FROM dsu_vip v, common_member m WHERE m.uid=v.uid ORDER BY v.jointime DESC LIMIT -20,20
PHP DebugNo. File Line Code
1 vip.php 95 include(%s)
2 source/plugin/dsu_kkvip/module/new_vip.inc.php 9 vip->query(%s)
3 source/class/class_vip.php 74 db_driver_mysql->query(%s, %s)
4 source/class/db/db_driver_mysql.php 153 db_driver_mysql->halt(%s, %d, %s)
5 source/class/db/db_driver_mysql.php 224 break()

解决方案 »

  1.   

    建议把LIMIT -20,20改成正规写法
    LIMIT 0,20
      

  2.   


    这个可能和sql_mode参数的设置有关系,如果你改不了sql,那就把sql_mode给改了吧。
      

  3.   

    <?php!defined('IN_KKVIP') && exit('Access Denied');$vip_intro_array=explode("\n",$vip->vars['vip_intro']);foreach ($vip_intro_array as $text){ $vip_intro.=$text?"<li>".$text."</li>\r\n":"";}$page = $_GET['page'] ? intval($_G['gp_page']) : 1;$start = ($page - 1) * 20;$query = $vip->query("SELECT m.username,m.uid,v.level,v.czz,v.year_pay FROM pre_dsu_vip v, pre_common_member m WHERE m.uid=v.uid ORDER BY v.czz DESC LIMIT {$start},20");while($value=DB::fetch($query)){ $viparray[]=$value;}$amount = count($vip->vip_cache);$multipage = multi($amount, 20, $page, 'vip.php?action=vip_top');include template('dsu_kkvip:vip_top');
      

  4.   

    SELECT m.username,m.uid,v.level,v.czz,v.jointime,v.year_pay FROM dsu_vip v, common_member m WHERE m.uid=v.uid ORDER BY v.jointime DESC LIMIT 0,20