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 ...
随机推荐
- 右键添加使用Sublime打开
网上教程大多是教你怎么改注册表,有点麻烦. 我根据教程改完之后导出来供大家使用,更方便快捷. Windows Registry Editor Version 5.00 [HKEY_CLASSES_RO ...
- 20135337朱荟潼 Linux第五周学习总结——扒开系统调用的三层皮(下)
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC 1000029000 一.学习内容 (一 ...
- Eat Style --proposed by Chongyang Bai
NEED 1. 有人希望妈妈是这样的: 但实际上对妈妈做的菜反应确是这样的: 处在不同的时节,根据不同的个人偏好,到底该做些什么饭菜?工作繁忙,家里的厨师可能也没时间琢磨.最后做出的只是应付差事的饭菜 ...
- Majority Element问题---Moore's voting算法
Leetcode上面有这么一道难度为easy的算法题:找出一个长度为n的数组中,重复次数超过一半的数,假设这样的数一定存在.O(n2)和O(nlog(n))(二叉树插入)的算法比较直观.Boyer–M ...
- idea不能跟随输入法问题
在写注释的时候会发现输入法不跟随,这是idea工具本身存在的bug,这个问题很头疼,我找了好多办法都不行,比如删除idea自带的jre,这个办法对我的2018.1.5版本并不适用,以下办法是不需要删除 ...
- PSP(4.13——4.19)以及周记录
1.PSP 4.13 15:15 15:30 0 15 站立会议 A Y min 15:30 19:00 65 145 Account A Y min 21:15 23:00 15 90 博客 B Y ...
- codeforces4A
Watermelon CodeForces - 4A Qingyu有一个简单的问题想让你解决. 输入一个数,如果它是2,或者它是奇数,输出NO,否则输出YES. 很简单吧,因此你应该很快解决. 输入 ...
- 洛谷P4720 【模板】扩展卢卡斯
P4720 [模板]扩展卢卡斯 题目背景 这是一道模板题. 题目描述 求 C(n,m)%P 其中 C 为组合数. 输入输出格式 输入格式: 一行三个整数 n,m,p ,含义由题所述. 输出格式: 一行 ...
- linq partition by
static void Main(string[] args) { var beatles = (new[] { new { id=1 , inst = "guitar" , na ...
- c# DataGridView绑定DataTable对象之后总会多一行
DataGridView 属性 AllowUserToAddRows = false