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 ...
 
随机推荐
- PAT甲题题解-1014. Waiting in Line (30)-模拟,优先级队列
			
题意:n个窗口,每个窗口可以排m人.有k为顾客需要办理业务,给出了每个客户的办理业务时间.银行在8点开始服务,如果窗口都排满了,客户就得在黄线外等候.如果有一个窗口用户服务结束,黄线外的客户就进来一个 ...
 - mybatis mapper使用记录
			
insert://插入一条数据//支持Oracle序列,UUID,类似Mysql的INDENTITY自动增长(自动回写)//优先使用传入的参数值,参数值空时,才会使用序列.UUID,自动增长int i ...
 - C++:同名隐藏和赋值兼容规则
			
一.同名隐藏 同名隐藏,即在C++的继承中,只要子类的函数名和父类的函数名相同,子类中的函数将会隐藏所有父类中和子类的成员函数同名的函数 特别注意: 和函数之间的重载不同,这里只要求函数的名字相同,而 ...
 - 云平台项目--学习经验--打包压缩工具requirejs
			
requirejs是一个JavaScript模块加载器.适合在浏览器中国使用,也可以在其他脚本环境使用,它鼓励了代码的模块化.使用RequireJS加载模块化脚本将提高代码的加载速度和质量.如何加载R ...
 - 关于Sample的分析报告
			
首先,这是一个典型的sample Table box: 一. Stbl box中常见的子box: stts:Decoding Time to Sample Box时间戳和Sample映射表. ...
 - android开发心得之知识的量变到质变
			
随着身边越来越多的人开始了尝试android开发,看着他们一点点学期 从nodepad++写代码 cmd 执行,到安装eclipse 和android SDK,仿佛看到了昨天的我一样,一样勤勤恳恳的学 ...
 - jquery实现点击复制到剪切板
			
1.必须有先引入 jquery库 <script type="text/javascript" src="js/jquery.js"></sc ...
 - 从零开始学Kotlin-使用接口(7)
			
从零开始学Kotlin基础篇系列文章 定义接口 使用关键字interface定义接口 interface InterfaceDemo7 { } 类或对象可以实现一个或者多个接口 class demo7 ...
 - Windows 2019 激活教程
			
Study From https://blog.csdn.net/cssxn/article/details/83743662 1. 原文里面提到了 几个序列号 Windows Server Data ...
 - RDM 使用与破解
			
RDM 的下载地址 https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.13.6.2.0.msi#_ga=2.2471513 ...