首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ThinkPhp学习_003查询更新删除

前面学习了 ThinkPhp学习_001下载与配置 ThinkPhp学习_002建立数据库并查询与插入数据 ThinkPhp学习_003查询更新删除 今天要学习:1.多条查询2.数据更新...更新数据表中的数据 Db::table('think_user') ->where('id', 1) ->update(['name' => 'thinkphp']); 如果数据中包含主键...,可以直接使用: Db::table('think_user') ->update(['name' => 'thinkphp','id'=>1]); update 方法返回影响数据的条数,没修改任何数据返回...') ->where('id',1) ->setField('name', 'thinkphp'); setField 方法返回影响数据的条数,没修改任何数据字段返回 0 3.多条查询...运行 2.更新更新id=4的记录把name修改为郭襄 //更新操作,把id=4的数据进行修改 public function update() { return

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL更新语句加锁

    在看下面这条语句: select * from T where id = 10; 那这条语句呢?其实这其中包含太多知识点了。要回答这两个问题,首先需要了解一些知识。...组合三、id不唯一索引+RC 该组合中,id列不在唯一,而是个普通索引,那么当执行sql语句时,MySQL又是如何加锁呢?...这种情况下,这个表,除了不加锁的快照读,其他任何加锁的并发SQL,均不能执行,不能更新,删除,插入,这样,全表锁死。...组合九、Serializable 在最后组合中,对于上诉的删除SQL语句,加锁过程和组合八一致。...一条简单的删除语句加锁情况也就分析完成了,但是学习不止于此,还在继续,对于复杂SQL语句又是如何加锁的呢?MySQL中的索引的分析又是怎样的呢?性能分析、性能优化这些又是怎么呢?还需要进一步的学习探索

    2.1K20

    几种更新(Update语句)查询的方法

    正 文: 数据库更新就一种方法Update, 其标准格式:Update 表名 set 字段=值 where 条件 只是依据数据的来源不同,还是有所差别的: 1.从外部输入 这样的比較简单 例:update...table1 ID f1 f2 table2 ID f1 f2 先要将table2中的f1 f2 更新到table1(同样的ID) update table1,table2 set table1....f1=table2.f1,table1.f2=table2.f2 where table1.ID=table2.ID 6.将同一个表中的一些记录更新到另外一些记录中 表:a ID   month   E_ID...1月份中 显然,要找到2月份中和1月份中ID同样的E_ID并更新price到1月份中 这个全然能够和上面的方法来处理,只是因为同一表,为了区分两个月份的,应该将表重命名一下 update a,a as...b set a.price=b.price where a.E_ID=b.E_ID and a.month=1 and b.month=2 当然,这里也能够先将2月份的查询出来,在用5.的方法去更新

    2.8K20

    MySQL常用SQL语句:插入更新删除查询

    整理一些MySQL常用SQL语句:插入、更新、删除、查询、根据指定的列对结果集进行排序等。...更新 update student set sname = '刘一', sex = '女' where sno = 218004 3....如果放在后面会报错,例:select sno, distinct snamefrom student (4) 关于where   a. where结合and或or,AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来...(1) 连接查询 连接查询是数据库查询中最常用的一种查询语句,是指通过连接字段和连接条件连接多个表从而进行查询,连接查询又分为小类:等值连接、非等值连接 、内连接、外连接、自然连接、自身连接。  ...形式的SQL语句称为查询块。当一个查询块的SELECT子句或者WHERE子句中嵌套了另一个查询块的查询语句就称为嵌套查询。最外层的查询称为外层查询或父查询,最内层的查询称为内层查询或子查询。

    6.6K30

    一条更新语句如何执行

    一条更新语句如何执行呢,他和查询语句一样吗,我们先看一张图 ?...其实更新语句和查询语句的流程是基本一样的,但是他其中不一样的是涉及两个日志模块,也就是我们经常提到的redo log(重做日志)和binlog(归档日志)。...具体来说,当我们要更新一条记录的时候,我们先把他写入redo log中,并更新内存,当InnoDb适当的时候把这个操作放到磁盘中,正如酒店空闲的时候把黑板的账目记录在账本上。...redo log是InnoDB存储引擎独有的,binglog是在server层,所有存储引擎都可以使用, redo log是循环使用的,binLog日志是追加的 一条更新语句整体的执行流程如下...执行器获取到这条数据之后,更新c的值,然后把调用引擎的接口写入 引擎把这条数据更新到内存中,然后记录在redo log中,此时redo log状态为prepare,此时告诉引擎,随时可以提交事务 执行器生成这动作的

    39510

    详解一条查询select语句更新update语句的执行流程

    一条update语句的执行流程 一条更新语句,其实是增,删,查的综合体,查询语句需要经过的流程,更新语句全部需要执行一次,因为更新之前必须要先拿到(查询)需要更新的数据。...那么现在有一个问题,假如我们更新都需要把数据写入数据磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程 IO 成本、查找成本都很高。...update语句的执行流程 前面铺垫了这么多,主要是想让大家先理解redo log和big log这两个概念,因为更新操作离不开这两个文件,接下来我们正式回到正题,一条update语句到底是如何执行的,...可以通过下图表示: 上图可以大概概括为以下几步: 1、先根据更新语句的条件,查询出对应的记录,如果有缓存,也会用到缓存 2、Server端调用InnoDB引擎API接口,InnoDB引擎将这条数据写到内存...总结 本文主要分析了select和update语句的执行过程,而在分析update语句执行过程中,又简单介绍了redo log和bin log相关概念,这一部分内容在本文中没有过多深入的讲解,仅仅只是为了让大家去理解更新流程而做了简单的介绍

    2.2K20

    thinkPHP升级到5.0.13导致update更新出错的问题

    而博主的程序初始版本还是在5.0.10的基础上搭建了,后面在博客发布的时候更新到了5.0.11。想着官方已经发布了5.0.13,已经跨版了,就折腾起来。...更新好以后就去点了几个页面,完全正常,添加了条测试信息也无误,也就直接更新到服务器上去了。 更新完成后,当我去写博客的更新日志的时候,问题来了,直接报错了个致命错误。...也就没多想,就去看了下builder.php的源码,114行的代码就是官方更新日志里面关于inc和dec关键字修复的问题。和5.0.12版本对比发现也只是多了个switch判断。...更新后的待写入字段 array(12){ ["aaa"]=>string(10) "aaa" ["bbb"]=>string(10) "bbb" ["xxx"] => string(46) "yyy"

    1.3K50

    一条更新语句是如何执行的?

    一条更新语句是如何执行的? 之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢? 这个需要从一个表,一条更新语句说起。...执行语句前,需要连接器的工作,在一个表上有更新的时候,跟这个表有关的缓存会失效,所以这条语句会把表 T 上所有缓存结果都清空,这也是为啥不推荐使用查询缓存的原因。...分析器通过词法和语法分析这条更新语句,优化器决定要使用 ID 这个索引,然后执行器具体执行,找到这一条,然后更新。...InnoDB 引擎在执行 update 语句时的内部流程? 执行器先找引擎 取 id =2 这一行。...但是由于 binlog 还没写完就 crash 了,这个时候 binlog 里面就没有记录这个语句,因此之后备份日志的时候,存起来 binlog里面就没这条语句

    53110
    领券