thinkphp5学习总结!
数据库操作之原生sql操作
<?php
namespace app\index\controller;
use think\Db; class Index
{
public function index()
{
echo "hello world";
} public function sqlAdd(){
//插入数据
$result=Db::execute('insert into think_test (name,state) values("周杰伦",1)');
var_dump($result);//返回受影响的行数
} public function sqlUpd(){
//修改数据
$result=Db::execute('update think_test set name="张学友",state=0 where id=1');
var_dump($result);//返回受影响的行数
} public function sqlDel(){
//删除数据
$result=Db::execute('delete from think_test where id=1');
var_dump($result);//返回受影响的行数
} public function sqlSel(){
//查询数据
$result=Db::query('select * from think_test');
var_dump($result);//返回数组
}
}
数据库操作之查询构造器
//==========================查询构造器==========================
public function tabAdd(){
//插入数据 如果不写表前缀 把table改为name即可
$result=Db::table('think_test')->insert(['name'=>'段誉','state'=>]);
var_dump($result);
} public function tabUpd(){
//修改数据 如果不写表前缀 把table改为name即可
$result=Db::table('think_test')->where('id',)->update(['name'=>'虚竹']);
var_dump($result);
} public function tabDel(){
//删除数据 如果不写表前缀 把table改为name即可
$result=Db::table('think_test')->where('id',)->delete();
var_dump($result);
} public function tabSel(){
//查询数据 如果不写表前缀 把table改为name即可
$result=Db::table('think_test')->select();
var_dump($result);
} //使用助手函数db
public function dbSel(){
$db=db('test');//参数为表名
$result=$db->select();
var_dump($result);
//其他操作类似
//ps:助手函数db默认每次都会重新连接数据库,所以不推荐使用
} //链式操作
public function linkSel(){
$list=Db::name('test')
->where('state',)
->field(['name','state'])
->order('id','desc')
->limit()
->select();
var_dump($list);
//ps:链式操作select() 要在最后 其他条件顺序无所谓
//更多方法请查询手册
}
数据库操作之模型
<?php
namespace app\index\controller;
use app\index\model\User as UserModel; class User
{
//==========================模型==========================
/*模型是一种对象关系映射简称ORM,一般来说每个数据表会和一个模型对应
,模型不是简单的CURD操作,那种用Db类即可,模型的Db类的区别在于,模型
查询返回的是对象,Db查询返回的是数组,模型是比Db类更高级的数据封装
*/ //插入数据属性
public function add1(){
$user = new UserModel();
$user->name = '郭靖';
$user->email = 'guojing@qq.com';
$user->birthday = strtotime('2000-1-1');
if($user->save()){
return '插入成功';
}else{
return '插入失败';
}
} //插入数据数组
public function add2(){
$user['name'] = '黄蓉';
$user['email'] = 'huangrong@qq.com';
$user['birthday'] = strtotime('2003-1-1');
if(UserModel::create($user)){
return '插入成功';
}else{
return '插入失败';
}
} //插入数据多条
public function addList(){
$user = new UserModel();
$list = [
['name'=>'张三','email'=>'zhangsan@qq.com','birthday'=>strtotime('2000-1-1')],
['name'=>'李四','email'=>'lishi@qq.com','birthday'=>strtotime('2005-1-1')]
];
if($user->saveAll($list)){
return '插入成功';
}else{
return '插入失败';
}
} //更新数据 查找并更新
public function upd1(){
$user = UserModel::get();//参数为id
// var_dump($user);
$user->name = '刘德华';
$user->email = 'liudehua@qq.com';
if($user->save()){
return '更新成功';
}else{
return '更新失败';
}
} //更新数据 直接更新
public function upd2(){
$user = new UserModel();
$user -> save(['name'=>'郭富城','email'=>'guofucheng@qq.com'],['id'=>]);
} //更新数据 多条
public function upd3(){
$user = new UserModel();
$list=[
['id'=>,'name'=>'张三丰','email'=>'zsf@qq.com'],
['id'=>,'name'=>'欧阳锋','email'=>'oyf@qq.com']
];
if($user->saveAll($list)){
return '更新成功';
}else{
return '更新失败';
}
} //查询数据 id
public function select1(){
$user = UserModel::get();
echo $user->name.'<br/>';
echo $user->email.'<br/>';
echo $user->birthday.'<br/>';
} //查询数据 数组
public function select2(){
$user = UserModel::get(['name'=>'张三']);
echo $user->name.'<br/>';
echo $user->email.'<br/>';
echo $user->birthday.'<br/>';
} //查询数据
public function select3(){
$user = new UserModel();
$result = $user->where('name','张三')->find();
echo $result->birthday;
} //查询数据 多个数据
public function selectAll(){
$list = UserModel::all([,,]);
foreach ($list as $key => $value) {
echo $value->name.'<br/>';
echo $value->email.'<br/>';
echo $value->birthday.'<br/>';
}
}
}
thinkphp5学习总结!的更多相关文章
- ThinkPhp5学习之新手博客
前端框架来源网络,后端框架采用 ThinkPhp 5 开发 参考资料:哔哩哔哩 ThinkPHP5.1新手博客项目实战 项目地址:https://github.com/yjy1/tp5
- thinkphp5学习(一)——thinkphp5的目录结构与开发规范
开发规范: 目录和文件 目录使用小写+下划线: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致: 类文件采用驼峰法命名(首字母大写),其它文 ...
- thinkphp5学习
1.路由的问题 1.1 // pathinfo分隔符 'pathinfo_depr' => '-'设置-后,如果访问的是/index/index 化,路由规则就不能解析 必须改为index-in ...
- thinkphp5 学习笔记
一.开发规范: 二.API: 1.数据输出:新版的控制器输出采用 Response 类统一处理,而不是直接在控制器中进行输出,通过设置 default_return_type 就可以自动进行数据转换处 ...
- thinkphp5学习记录一
1 使用composer安装 composer create-project topthink/think=5.0.* tpblog --prefer-dist 2 配置环境vim /usr/loca ...
- Thinkphp5学习 Windows下的安装
方法一.通过官方网站直接下载: (1)下载地址:http://www.thinkphp.cn/down.html: (2)下载后,解压到web目录下: (3)访问:http://localhost/目 ...
- [PHP][thinkphp5] 学习三:函数助手实例说明
来源:http://blog.csdn.net/lunsunhuan1825/article/details/71086487 load_trait:快速导入Traits,PHP5.5以上无需调用 / ...
- [PHP][thinkphp5] 学习二:路由、配置调用、常量定义调用
路由: 其实TP5就是一个集多家框架所长而成的,感觉失去了自己的特色!路由这块呢类似于laravel框架!废话不说直接上码! 路由配置,类似laravel,就在route.php文件里配置路由(文件所 ...
- [PHP][thinkphp5] 学习一:增删改查
<?php namespace app\index\controller; use think\Controller; use think\Db; class Test extends Cont ...
随机推荐
- iOS之Block总结以及内存管理
block定义 struct Block_descriptor { unsigned long int reserved; unsigned long int size; void (*copy)(v ...
- 常用的Hql语句
// HQL: Hibernate Query Language.// 特点:// >> 1,与SQL相似,SQL中的语法基本上都可以直接使用.// >> 2,SQL查询的是表 ...
- Ubuntu 14.04 将一个sh文件制作成类似于windows下的可以双击执行的快捷方式
# 创建文件 touch test.desktop # 在test.desktop中写入如下内容 [Desktop Entry] Version=1.0 Type=Application Termin ...
- Vue-router的基本用法
刚学习vue不久,就接触了路由这个好东西.下面简单聊聊vue-router的基本用法. 一.路由的概念 路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击 ...
- fzu 2082 过路费 (树链剖分+线段树 边权)
Problem 2082 过路费 Accept: 887 Submit: 2881Time Limit: 1000 mSec Memory Limit : 32768 KB Proble ...
- c++11 decltype
c++11 decltype decltype实际上有点像auto的反函数,auto可以让你声明一个变量,而decltype则可以从一个变量或表达式中得到类型.decltype在C++11标准制定时引 ...
- 【题解】 [SDOI2009] Elaxia的路线(最短路+拓扑排序)
懒得复制,戳我戳我 Solution: 题目大概意思就是找两条最短路后,找出最长公共部分 我们就只用以四个点为源点开始走\(SPFA\),然后我们就只用遍历每条边然后建立一个新的拓扑图,然后随便搞一下 ...
- CRT && exCRT模板
CRT从各种方面上都吊打exCRT啊...... 短,好理解... 考虑构造bi使得bi % pi = ai,bi % pj = 0.然后全加起来就行了. 显然bi的构造就是ai * (P/pi) * ...
- springcloud与dubbo对比:
我们直接将结论先列出来,然后逐个分析: 本博客借鉴此文章:http://blog.csdn.net/shuijieshuijie/article/details/53133082 打个不恰当的比喻: ...
- SQL Server 2012中LEAD函数简单分析
LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本 DECLARE @TestData TABLE( ID INT IDENTITY(1,1), Dep ...