ThinkPHP数据库处理:

1.MySQL的数据库连接

首先配置database.php文件

使用{dump(config('database));}来查看数据库的配置项

使用 {$res = Db::connect(); dump($res);}来查看数据库的连接信息

我们可以在{Db::connect()}中来配置数据库的连接,具体的方法为:

{

Db::connect([

// 数据库类型

'type' => 'mysql',

// 服务器地址

'hostname' => '127.0.0.1',

// 数据库名

'database' => 'habbit',

// 用户名

'username' => 'root',

// 密码

'password' => 'root',

// 端口

'hostport' => '3306',

// 连接dsn

'dsn' => '',

// 数据库连接参数

'params' => [],

// 数据库编码默认采用utf8

'charset' => 'utf8',

]);

}

2.数据库的查询

3.数据库的插入

insert方法:

Db::name('表名(如果配置前缀名,可以省略)') -> insert([

"键" => "值"

]);

insert方法返回的是影响记录的行数

#insertGetId方法:

Db::name('表名(如果配置前缀名,可以省略)') -> insertGetId([

"键" => "值"

]);

insertGetId方法返回的是插入数据的自增id

#insertAll方法(可以一次插入多个数组):

Db::name('表名(如果配置前缀名,可以省略)') -> insertAll(数据);

insertAll方法返回的是插入成功的行数

4.数据的更新

#update方法:

Db::name('表名(如果配置前缀名,可以省略)') -> where(条件) -> update([

"键" => "值"

]);

返回的是被影响的行数。

#setField方法:

Db::name('表名(如果配置前缀名,可以省略)') -> where(条件) -> setField("键","值");

#setInc方法:

Db::name('表名(如果配置前缀名,可以省略)') -> where(条件) ->setInc("键",数值);

返回值为被影响行数,如果方法中不传数值即{setInc("键")},则每次执行,键对应的value会自增一,如果有数值,则每次自增数值

#setDec方法:

Db::name('表名(如果配置前缀名,可以省略)') -> where(条件) ->setDec("键",数值);

和setInc方法相反,setDec为自减。

5.数据的删除:

Db::name('表名(如果配置前缀名,可以省略)') -> where(条件) ->delete();

返回值为被影响行数

Db::name('表名(如果配置前缀名,可以省略)') -> delete("主键");

6.条件构造器

语法:

{where("id","","")}//字符串

{where([])}//数组

{where("id","EXP","in [1,2,3]")}//不会重构sql语句

EQ=

NEQ<>不等于

LT<

ELT<=

GT>

EGT>=

BETWEENBETWEEN * AND *在*和*之间

NOTBETWEENNOTBETWEEN * AND *不在*和*之间

ININ(*,*)是*中的一个

NOTINNOTIN(*,*)不是*中的一个

whereOr方法:

{where(条件1)->whereOr(条件2)}//满足条件1或条件2

7.使用model层来封装方法:

#查询:

get(主键);//查询到对应主键的数据

all(function($query){

$query -> where(条件);

});

Model::where(条件)->select();

Model::where(条件)->value(字段名);//返回一个字符串

#添加:

Model::creat(数据);//插入数据,返回值为model对象

Model::creat(数据,true);//忽略数据库中没有的字段插入

Model::creat(数据,['字段1','字段2',...]);//只允许插入对应字段的数据

model->save();//使用save方法时必须实例化model,返回值为影响行数

model->allowField(true)->save(数据);//插入数据时忽略数据库中没有的字段

model->allowField(['字段1','字段2',...])->save(数据);//只允许插入对应字段的数据

model->saveAll(数据);//使用saveALl方法时必须实例化model,可以批量添加数据,返回值为model对象

其中添加的数据为一个二维数组:

$data = [

[第一条],

[第二条],

[第三条],

.

.

.

];

#更新数据:

Model::update(数组);//修改数据,如果有主键值(自增id),则不需要传递条件(不建议使用)

update(

"id" => 1,

"name" => "123"

);

update(数组,function($query){

$query->where(条件);

});//带有条件的数据更新

Model::where(条件)->update(数组);//更新特定的数据(建议使用)

Model->save(["username"=>"123"],function($query){

$query->where(条件);

});//将符合条件的username改为123(建议使用)

Model->saveAll(数组);//可以用来批量更新,其中传递的数组为二维数组,对应一组数据,其中的一维数组,对应一条数据(不建议使用)

{

$data = [

['id'=>1,'username'=>'123'],

['id'=>2,'username'=>'1234'],

['id'=>3,'username'=>'12345'],

.

.

.

];

}//批量修改id等于1,2,3的usernam

#删除:

destroy(主键);//删除对应主键的数据

destroy(['id'=>1]);//删除id=1的数据

destroy(function($query){

$query-where(条件);

})

Model::where(条件)->delete();

扩展{

limit(5)//输出5条

limit(5,5)//从第5条开始取5条

page(3,5)//第三页的5条数据 用于分页

group()//分组方法

order()//排序方法 DESC--倒序排序

}

thinkphp5.0连接mysql_thinkphp5.0数据库操作相关推荐

  1. Nginx 连接 Redis 实现数据库操作

    Nginx 连接 Redis 实现数据库操作 实现的功能:当有新的连接到达Nginx时,在redis记录连接数量. 1. redis 创建数据库 安装完成redis之后,通过set connums 0 ...

  2. VBA连接SQL SERVER数据库操作Excel

     VBA连接SQL SERVER数据库操作Excel. Sub 按钮1_Click() Dim i As Integer, j As Integer, sht As Worksheet 'i,j为 ...

  3. C#7.0连接MySQL8.0数据库的小笔记

    1.要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为https://dev.mysql.com/downloads/connector/net/6.6.html#d ...

  4. python连接sql sever_R和python连接SQL sever 数据库操作

    在R的使用中,为了方便提取数据, 我们经常要进行数据库进行操作,接下来我们尝试使用R进行连接数据. 这里我们使用R中的RODBC进行操作, 首先,我们需要先配置ODBC资源管理器 通过任务管理器或者w ...

  5. idea连接sqlserver及数据库操作

    idea连接sqlserver及操作 一.在连接过程中遇到的问题: (1)数据库登录失败 (2)登录成功之后 数据库端口号怎么查看 二.代码连接数据库 ①加载驱动和连接数据库 三.数据库操作 连接详解 ...

  6. medoo连接mysql_Medoo PHP数据库操作类

    Medoo是一个加速网站开发的最轻量的PHP数据库框架类!Medoo可以极大地加快你的PHP项目的开发.在进行Web开发的时候,很大一部分企业或个人都会选择使用PHP语言,而Medoo则可以起到锦上添 ...

  7. cyq.data 连接mysql_底层数据库操作类库CYQ.DATA查询

    单表查询: using (MAction action = new MAction("COMP","K3")) { //查询的字段 string colstr ...

  8. 七.【Python3.8+Django3.0从零开始系列】Django3.0+Python3.8连接MySql8.0及遇到的问题解决

    目录 一.Django3.0连接MySql8.0准备 二.安装pymysql 三.安装mysqlclient 错误解决方法: 四.使用PyCharm的可视化数据库管理工具,连接Mysql8创建数据库 ...

  9. python数据库操作——连接SQLite

    python数据库操作--连接SQLite   hello!我是wakeyo_J,每天一个konwledge point,一起学python,让技术无限发散. 连接SQLite python数据库操作 ...

最新文章

  1. ARM平台硬件时钟中断周期HZ值计算
  2. 插入排序-by-Python
  3. PostgreSQL数据库服务端监听设置及客户端连接方法教程
  4. 7.Mahout菩萨
  5. php 数组美化_php 打印数组格式化显示
  6. python基础知识纵览(下)
  7. html插入图片和文字,HTML第三课文字图片插入
  8. am82.top 1.php,Droppy v2.1.3 – PHP在线网盘系统
  9. python同步应用:多个线程有序执行
  10. 【ElasticSearch】Es 源码之 Discovery DiscoveryModule Coordinator 源码解读
  11. 1000米感知能力?!图森无人车说这是他们的最新突破
  12. 基于Lumisoft.NET组件的POP3邮件接收和删除操作
  13. zlib库删除后的恢复
  14. 分享一下我作为面试官面试了几个java程序员后的感受
  15. 龙芯提供的jna-4.5.2,没有libjnidispatch.so,也能用
  16. 2019全球最强100家AI公司名单出炉,6家中国公司上榜
  17. 计算机技术在生物学中的应用鲁东大学,项目学习在高中生物学教学中的应用研究...
  18. 挂载移动硬盘到ubuntu server
  19. 路普达-区块链技术的本质与未来应用趋势
  20. 机器学习入门之:使用 scikit-learn 决策分类树来预测泰坦尼克号沉船生还情况

热门文章

  1. ai怎么画路线_使用AI画一个离心管
  2. 语言写贪吃蛇墙角符号_从零基础到拥抱人工智能,您的孩子可能就差一个贪吃蛇游戏...
  3. QT不让windows休眠的方法
  4. HTML|CSS之布局相关总结
  5. 图片的等比缩放和Logo水印
  6. 微软-IT-解决方案-统一沟通-发布会
  7. 哲理短文一则:揭示最好的成功法则
  8. matlab中quiver,matlab quiver 比例尺
  9. html显示数据库的数据类型,将HTML插入mysql数据库,显示E类型
  10. oracle共享内存不足,Oracle数据库共享内存分配不足怎么办