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");

     


  • 相关阅读:
    动手动脑——登录界面
    异常处理动手动脑问题
    继承与多态
    课程作业04——动手动脑(字符串String)
    创建过的对象的个数
    类和对象动手动脑问题
    第二周进度条
    构建之法阅读笔记01
    新课程界面
    软件工程概论课后作业01
  • 原文地址:https://www.cnblogs.com/gyfluck/p/9437386.html
Copyright © 2011-2022 走看看