位置: 编程技术 - 正文

ThinkPHP数据操作方法总结(thinkphp 数据库查询)

编辑:rootadmin

推荐整理分享ThinkPHP数据操作方法总结(thinkphp 数据库查询),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:thinkphp6 数据库,thinkphp constants,thinkphp数据库,thinkphp修改数据,thinkphp操作数据库,thinkphp6 数据库,thinkphp操作数据库,thinkphp操作数据库,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例总结了ThinkPHP数据操作方法。分享给大家供大家参考。具体如下:

一、ThinkPHP Insert 添加数据

ThinkPHP 内置的 add 方法用于向数据表添加数据,相当于 SQL 中的 INSERT INTO 行为。

添加数据 add 方法是 CURD(Create,Update,Read,Delete / 创建,修改,读取,删除)中的 Create 的实现,ThinkPHP 支持以普通数组方式和面向对象方式将数据写入数据表。

现在以《PHP MySQL 数据库教程》中操作 user 表数据的例子(具体参见:PHP+MySQL之Insert Into数据插入用法分析)为例,来演示如何在 ThinkPHP 中实现对数据表的数据添加操作。

例子:

在 IndexAction 控制器(Lib/Action/IndexAction.class.php)里,添加 insert() 操作:

访问执行该操作: 用于高效实例化一个数据模型(M 是 new Model 的简写,称为快捷方法),参数为要操作的表名。

接下来构建要保存数据的数组 $data 。

最后是用 add() 方法将数据写入库表,由于使用的是 M快捷方法,需要将 $data 数组传入 add() 方法。

add() 方法如果添加数据记录成功,返回的是新数据记录主键,可直接得到。该例子实际运行的 SQL 为:

提示:运行该例子,请确认在配置文件里正确配置了数据库的相关账号密码等信息,具体参见《ThinkPHP公共配置文件与各自项目中配置文件组合的方法》 对象方式添加数据

上面的方式是以构造数据数组的方式,然后将数据以参数形式传入 add 方法写入数据表。ThinkPHP 也支持以对象的方式将数据写入数据表,将上面的代码更改为:

对象方式除了数据以数据对象方式赋值外,在调用 add 方法写入数据的时候不需要传递参数。

二、ThinkPHP 更新数据 save方法

save()

ThinkPHP 中使用 save() 方法来更新数据库,并且也支持连贯操作的使用。例子:

上面例子执行的 SQL 语句为:

UPDATE user SET email='Jack@.com' WHERE username='Jack'

提示

为了保证数据库的安全,避免出错更新整个数据表,如果没有任何更新条件,数据对象本身也不包含主键字段的话,save方法不会更新任何数据库的记录。

因此要使用 save() 方法更新数据,必须指定更新条件或者更新的数据中包含主键字段。

使用主键的例子:

如果需要更新的数据里面包含主键,那么 ThinkPHP 会自动把主键的值作为条件来更新。

上面的例子跟下面的效果相同:

// 需要更新的数据 $data['email'] = 'Jack@.com'; // 更新的条件 $condition['uid'] = 2; $result = $Dao->where($condition)->save($data);如果是表单数据,还可以使用 create() 方法创建数据对象来更新数据:

如果更新的数据需要做逻辑处理,可以在操作类以对象的方式处理或者在模型内处理,具体可参考《ThinkPHP 表单数据智能写入 create 方法》。

注意:以create() 方法创建数据对象来更新数据,表单中必须包含一个以主键为名称的隐藏域,才能完成保存操作。

三、ThinkPHP 查询数据 select(findAll)方法

ThinkPHP数据操作方法总结(thinkphp 数据库查询)

ThinkPHP 查询数据主要提供以下几类查询:select:普通查询,同 findAll() 方法find:取得符合查询条件的一条记录getBy动态查询:根据某个字段取得符合查询条件的一条记录getField:获取某个字段的值或多个字段的索引数组区间查询:取得符合查询条件的区间记录统计查询:取得符合查询条件的统计数据定位查询:取得符合查询条件的一条或多条记录原生SQL查询:支持以原生 SQL 进行查询或执行操作

select()

select() 是 ThinkPHP 中最常用的普通查询方法,得到的是一个二维数组。findAll() 为 select() 方法的别名,并建议使用 select()。

读取操作

下面的例子将 user 表的所有数据读取出来并显示:

假设上面的例子对应的 class 文件为 Lib/Action/IndexAction.class.php ,那么对应的模板文件为 Tpl/default/Index/read.html。

数据显示模板

模板文件用于显示刚才读取的 User 表的数据。在学习阶段,要不想使用模板,也可以直接使用 foreach 语法在 read() 操作内直接显示读取的数据。下面是模板相应的代码片段,我们将读取的数据在一个表格中显示出来:

要了解更多关于 ThinkPHP模板的知识,请参阅:《ThinkPHP 模板》。

field() 查询指定字段

select() 方法默认是查询所有字段的数据,如果要查询某个或某些字段,就需要使用 filed() 方法。

filed() 是属于 ThinkPHP 连贯操作中的一个方法,如在上面的例子中,只查询用户名和电子邮件地址,则查询方法对应更改为:

$list = $Dao->field('username,email')->select();

使用查询条件

使用 ThinkPHP 连贯操作可以很方便的对数据查询使用查询条件。下面是一些简单的查询条件的例子。

where() 条件

…… // 构造查询条件 $condition['username'] = 'Admin'; // 查询数据 $list = $Dao->where($condition)->select(); ……上述查询的就是 username='Admin' 这个条件的数据。关于 ThinkPHP where 条件更详细资料,请参阅《ThinkPHP Where 条件》。

ORDER BY 排序

在查询中使用 ORDER BY 对数据进行排序:…… // 查询数据 $list = $Dao->order('uid DESC')->select(); ……这个例子就是数据按照 ORDER BY uid DESC 进行查询,而 order() 方法中的参数意义跟 SQL 语句中的意义完全一致。

LIMIT 限制

在查询中使用 LIMIT 限定数据返回的记录数:…… // 查询数据 $list = $Dao->limit('4,5')->select(); ……这个例子就是将第 5- 条记录取出,limit() 方法内的参数意义跟 SQL 语句中的 LIMIT 完全一致。

连贯操作

ThinkPHP 中允许将数据对象中的各个方法写在一起操作,如:$list = $Dao->order('uid DESC')->limit('4,5')->select();这就是连贯操作,关于连贯操作更详细的介绍,参见《ThinkPHP 连贯操作》。 四、ThinkPHP 删除数据记录 delete 方法

ThinkPHP 中使用 delete() 方法来删除数据库中的数据记录,并且也支持连贯操作的使用。delete() 方法执行成功返回操作影响(删除)的记录数。

例子:

上面例子执行的 SQL 为:

DELETE FROM user WHERE uid = 5

delete() 方法可以用于删除单个或者多个数据,主要取决于 where() 删除条件。另外也可以配合连贯操作中的其他方法如 order()、limit() 等构造出更符合需要的删除条件:

上面例子根据用户注册时间降序排列,删除 5 条 status=0 的用户记录。

希望本文所述对大家基于ThinkPHP框架的php程序设计有所帮助。

ThinkPHP表单数据智能写入create方法实例分析 本文实例讲述了ThinkPHP表单数据智能写入create方法。分享给大家供大家参考。具体如下:创建数据对象create()除了手动构造入库的数据集之外,ThinkPHP还

PHP中把对象数组转换成普通数组的方法 最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组。然而需要一个个属性取出来放到数组里面然后再利用Thi

ajax+php控制所有后台函数调用 总共分成3大部分来完成php的ajax调用逻辑,以下是大致的结构第一部分:ajax请求:主要是action这个参数,LoginController是php的类名,login是LoginController这个

标签: thinkphp 数据库查询

本文链接地址:https://www.jiuchutong.com/biancheng/284436.html 转载请保留说明!

上一篇:百万级别知乎用户数据抓取与分析之PHP开发(知乎百万大v)

下一篇:ThinkPHP表单数据智能写入create方法实例分析(thinkphp操作数据库)

  • 税务ukey电子发票二维码用什么扫码
  • 建筑安装增值税纳税地点
  • 怎么免费用别人的网
  • 什么情况企业需要经侦
  • 所得税费用是哪类科目
  • 非关联企业之间无偿借款要交税嘛
  • 车辆停放服务属于交通运输服务吗
  • 开发票高校是企业还是非企业单位
  • 总公司一般纳税多少
  • 车船税完税凭证号
  • 去年的成本没有入账
  • 从对公账户提取备用金违法吗
  • 高速公路的发票怎么补
  • 水电费大于发票怎么处理?
  • 个体户要申报哪些报表
  • 维护服务合同可不可以一直续签
  • 关于城建税教育费附加地方教育附加的计算
  • 金税盘费用到期
  • 用户风险是什么意思
  • 服务型企业管理体系
  • 退回来的税怎么做账务处理
  • 核销坏账的会计处理分录
  • 国家减免税额怎么入账
  • 房产契税什么时候可以退
  • 我的初级备考经验,认真就有收获
  • 汇总表格怎么设置
  • 餐饮业管理费用明细表
  • 考勤扣款怎么算
  • 余款退回会计分录
  • 融资租赁固定资产会计处理
  • 政策性专项资金包括哪些
  • 外币账户收到应收账款
  • PHP:realpath_cache_size()的用法_Filesystem函数
  • 瓜纳华托大学世界排名
  • 合同的第三方指什么
  • 流动资产占总资产比重多少较为合适
  • 收到现金货款存入银行会计分录
  • 机关单位工会经费提取比例
  • php反射获取方法参数
  • javaweb界面设计
  • thinkphp框架结构
  • 飞机票抵扣进项税含民航发展基金吗
  • 营业外支出结转损益
  • 进项大于销项怎么结转增值税
  • dedecms建站操作
  • 解决掉发的有效方法
  • mysql无法添加数据
  • 印花税减半征收优惠政策2021
  • 资本公积账务处理办法
  • 异地车辆登记证书怎么补办
  • 免税收入就是不征收收入,均属于税收优惠范畴
  • 信息技术服务费属于什么费用
  • 事业单位结余是什么意思
  • 工程安装公司注册条件
  • 赠送客户样品记什么费用
  • 会计科目的设置原则包括( )
  • 房地产开发企业资质管理规定
  • 红帽子一个月能挣多少钱
  • 苹果mac系统怎么用
  • centos7.0网络配置
  • windows资源监视器
  • macbook的qq怎么更换背景
  • 时间服务器ip 端口
  • win8系统自带浏览器
  • javascript获取数据类型
  • linux文本操作命令
  • unity总结
  • c语言 ls
  • js 显示当前时间
  • jquery实现网页全屏
  • jquery validator
  • python字符串拼接join
  • linux给本地用户发邮件
  • 个人转让商业用房税费
  • 北京国税办税服务厅
  • 沈阳税务局兑奖中心在哪
  • 海南省税务局长
  • 上海电子税务平台开票不含税怎么改成含税
  • 税务局纳税服务工作总结
  • 从日本带化妆品回国会被扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设