数据库操作之原生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学习总结!的更多相关文章

  1. ThinkPhp5学习之新手博客

    前端框架来源网络,后端框架采用 ThinkPhp 5 开发 参考资料:哔哩哔哩  ThinkPHP5.1新手博客项目实战 项目地址:https://github.com/yjy1/tp5

  2. thinkphp5学习(一)——thinkphp5的目录结构与开发规范

    开发规范: 目录和文件 目录使用小写+下划线: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致: 类文件采用驼峰法命名(首字母大写),其它文 ...

  3. thinkphp5学习

    1.路由的问题 1.1 // pathinfo分隔符 'pathinfo_depr' => '-'设置-后,如果访问的是/index/index 化,路由规则就不能解析 必须改为index-in ...

  4. thinkphp5 学习笔记

    一.开发规范: 二.API: 1.数据输出:新版的控制器输出采用 Response 类统一处理,而不是直接在控制器中进行输出,通过设置 default_return_type 就可以自动进行数据转换处 ...

  5. thinkphp5学习记录一

    1 使用composer安装 composer create-project topthink/think=5.0.* tpblog --prefer-dist 2 配置环境vim /usr/loca ...

  6. Thinkphp5学习 Windows下的安装

    方法一.通过官方网站直接下载: (1)下载地址:http://www.thinkphp.cn/down.html: (2)下载后,解压到web目录下: (3)访问:http://localhost/目 ...

  7. [PHP][thinkphp5] 学习三:函数助手实例说明

    来源:http://blog.csdn.net/lunsunhuan1825/article/details/71086487 load_trait:快速导入Traits,PHP5.5以上无需调用 / ...

  8. [PHP][thinkphp5] 学习二:路由、配置调用、常量定义调用

    路由: 其实TP5就是一个集多家框架所长而成的,感觉失去了自己的特色!路由这块呢类似于laravel框架!废话不说直接上码! 路由配置,类似laravel,就在route.php文件里配置路由(文件所 ...

  9. [PHP][thinkphp5] 学习一:增删改查

    <?php namespace app\index\controller; use think\Controller; use think\Db; class Test extends Cont ...

随机推荐

  1. think in UML(二)

    基础篇——在学习中思考! 在大概了解了UML之后就该系统的学习UML的主要建模元素了,一个个实例帮助我们更好的理解这些元素的重要性并运用相关知识解决实际问题. 在UML里有一个概念叫版型,有些书里也称 ...

  2. Maven 学习笔记——Maven环境配置(1)

    在学习Selenium的过程中,接触到了Maven(项目管理工具),不至于学一路忘一路,左耳朵进右耳多出,还是决定边学边记录,毕竟听的不如 看的,看的不如写的吗.首先学一样东西,肯定得明确学的是什么, ...

  3. 深入理解javascript选择器API系列第三篇——HTML5新增的3种selector方法

    前面的话 尽管DOM作为API已经非常完善了,但是为了实现更多的功能,DOM仍然进行了扩展,其中一个重要的扩展就是对选择器API的扩展.人们对jQuery的称赞,很多是由于jQuery方便的元素选择器 ...

  4. Java之Set的使用场景

    2.Set使用场景 API介绍: java.util.Set接口和java.util.List接口一样,同样继承自Collection接口, 它与Collection接口中的方法基本一致,并没有对Co ...

  5. 【BZOJ2257】[JSOI2009]瓶子和燃料(数论)

    [BZOJ2257][JSOI2009]瓶子和燃料(数论) 题面 BZOJ 洛谷 题解 很明显就是从\(n\)个数里面选\(K\)个数让他们的\(gcd\)最大. 暴力找所有数的因数,拿个什么东西存一 ...

  6. 利用scrapy_redis实现分布式爬虫

    介绍 Scrapy框架不支持分布式,所以需要将一些关键代码进行修改使之支持分布式.scrapy-redis相当于一个插件,用来替换scrapy中的一些模块,使得scrapy支持分布式.github地址 ...

  7. P2325 [SCOI2005]王室联邦 解题报告

    P2325 [SCOI2005]王室联邦 题目描述 "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理. 他的国家有\(n\) ...

  8. 【bzoj1492】 NOI2007—货币兑换Cash

    http://www.lydsy.com/JudgeOnline/problem.php?id=1492 (题目链接) 题意 两种金券,金券按照比例交易:买入时,将投入的资金购买比例为$rate[i] ...

  9. (转)Maven学习总结(六)——Maven与Eclipse整合

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(六)——Maven与Eclipse整合 一.安装Maven插件 下载下来的maven插件如下图所示:,插件存放的路径是:E:/MavenP ...

  10. learning hive学习笔记

    http://note.youdao.com/noteshare?id=58f314d67b3a04caac36221a9a046a13