zoukankan      html  css  js  c++  java
  • Thinkphp5.0 的实践一

    Thinkphp5.0 的实践一


     tp5.0默认没有__SELF__,需要定义,

    define('__SELF__',strip_tags($_SERVER['REQUEST_URI']));

    tp5.0默认没有NOW_TIME,需要定义,

    define('NOW_TIME',$_SERVER['REQUEST_TIME']);

    
    
    tp5的sql使用concat函数报错:
    $model = new User();
    $where = ['id'=>['<',30]];
    $priData = $model->where($where)->order('concat(pri_path,"-",id) asc')->buildSql();
    dump($priData);
    
    
    打印出来的SQL语句是:
    SELECT * FROM `user` WHERE  `id` < 30 ORDER BY `concat(pri_path`,`"-"`,`id)` ASC
    SQL语句中把concat()函数当做字段用反引号引起来了,报如下错误:

    SQLSTATE[42000]: Syntax error or access violation: 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 'sort`` ASC,`concat(`pri_path``,`'-'`,``id`)` ASC' at line 1。


    order()排序无法使用,

    解决方法一(使用字段别名)

    $model = new User();
    $where = ['id'=>['<',30]];
    $priData = $model->where($where)->field("id,concat(`pri_path`,'-',`id`) as names")->order('names asc')->buildSql();
    dump($priData);

    解决方法二(使用原生SQL语句):

    $db_config = Config('database');
    $db_prefix = $db_config['prefix'];
    $in_id = '1,2,3,4';
    $priData = Db::query("select * from {$db_prefix}user WHERE `id` IN ({$in_id}) order by `sort` asc,CONCAT(`pri_path`,'-',`id`) asc");

     


  • 相关阅读:
    汉语6级试卷(转)
    看《第一滴血4》
    又爱又恨奥沙利文
    最爱“剁椒鱼头”
    中国移动用户请注意长途电话包有陷阱
    推荐一个免费原版KTV / MTV下载网站
    传说中的人品问题
    信息更改致乒乓球爱好者
    贴几张我家乐乐的照片
    Web Parts: From SharePoint to ASP.NET 2.0
  • 原文地址:https://www.cnblogs.com/gyfluck/p/9437386.html
Copyright © 2011-2022 走看看