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");
Thinkphp5.0 的实践一的更多相关文章
- 微信小程序ofo小黄车+thinkphp5.0打造全栈应用
原文地址:https://www.imooc.com/article/20310 ofo至今还没有微信小程序(很费解),每次用ofo都得去支付宝,很不方便,我用微信用的比较多,无意间在简书上面看到某人 ...
- vue 2.0 开发实践总结之疑难篇
续上一篇文章:vue2.0 开发实践总结之入门篇 ,如果没有看过的可以移步看一下. 本篇文章目录如下: 1. vue 组件的说明和使用 2. vuex在实际开发中的使用 3. 开发实践总结 1. ...
- PL/0编译器实践---后记
花了几天时间,把清华版的<编译原理>一书中的PL/0编译器实践了一遍.颇有收获,记录如下: 理解代码的技巧,如何理解一份代码,比如这个程序,其逻辑相对于一般程序就比较复杂了,如何翻译,虚拟 ...
- vue2.0 开发实践总结之入门篇
vue2.0 据说也出了很久了,博主终于操了一次实刀. 整体项目采用 vue + vue-router + vuex (传说中的vue 全家桶 ),构建工具使用尤大大推出的vue-cli 后续文 ...
- 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计
ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...
- thinkphp5.0 自动加载
自动加载 概述 ThinkPHP5.0真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符 ...
- ThinkPHP5.0中Redis的使用和封装(原创)
Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射.它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非常不 ...
- thinkphp5.0学习笔记(三)获取信息,变量,绑定参数
1.构造函数: 控制器类必须继承了\think\Controller类,才能使用: 方法_initialize 代码: <?php namespace app\lian\controller; ...
- Thinkphp5.0 在自己定义一个公共方法的控制器并且继承了Controller类的时候报错
在建立网站的时候,你通常想着把一些共有的方法提取出来,放入一个控制器内,如果你是将业务逻辑写入了构造函数里面,那么就得注意了. 在thinkphp5.0当中,有一个初始化的方法,类似于构造函数,那就是 ...
随机推荐
- 启动Windows PowerShell ISE
Windows Server 2008 R2 环境下,启动PoserShell ISE方法: 方法1:在cmd.exe控制台或运行框中,输入 powershell_ise.exe 执行即可. 方法2: ...
- Android 中保存数据到文件中
1.在安卓开发中,会遇到保存数据到手机中以及从手机中获取数据的情况 /** * 把数据存放到手机内存中 * * @param number * @param password * @return */ ...
- 网盘资源搜索的一些知识 C#
针对互联网盘上的资源进行搜索查找.写一个网盘资源搜索的要点主要有以下几点. 1.这个网盘资源搜索的原理就是利用互联网搜索引擎的site 命令. 其次就是针对网页链接进行提取以及处理. 首先就是编写一个 ...
- CCF|游戏|Java
import java.util.Scanner; public class tyt { public static void main(String[] args) { Scanner in = n ...
- com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "FileSize"
请求阿里云的OSS接口图片信息,返回json格式的数据,通过ObjectMapper将json转为Image对象时候报错转换失败 将json转对象的代码: String jsonStr = " ...
- vue ---- Object的一些常用的方法
在对象上添加新属性的几种方法: 直接附代码: 法一:Es6扩展运算符添加属性 法二:利用语法Object.assign(target, ...sources) target目标对象.source ...
- Maven error in eclipse (pom.xml) : Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4
i wanna make web project using the Maven to import automatically all libraries that i need, so i cho ...
- C# 获取目录下文件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 6-Java-C(无穷分数)
题目描述: 无穷的分数,有时会趋向于固定的数字. 请计算[图1.jpg]所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0. 请填写该浮点数,不能填写任何多余的内容. 正确算法: 此题 ...
- BEGIN - 开始一个事务块
SYNOPSIS BEGIN [ WORK | TRANSACTION ] DESCRIPTION 描述 BEGIN 初始化一个事务块, 也就是说所有 BEGIN 命令后的用户语句都将在一个事务里面执 ...