ThinkPHP学习笔记(八)CURD的的相关操作以及表的关联查询等

关于thinkphp关联模型的效率问题 以前听说过thinkphp关联模型效率比较低,但是一直没去kan yuan dai ma 阅读详情

本节的使用基于六、七的基于数据库的链接和conf的配置

主要是action中的curd的方法和update

action

<?php
class CurdAction extends Action{
	//创建和增删改成
	//create()
	//创建会完成自动映射、自动填充、自动验证
	//如果开启了字段缓存,会去匹配字段,如果不存在,会获取字段,返回一个数组
	//create方法中有自动令牌,向当前的session会话中放入Md5加密的字符串会将字符串插入点表单的</from>之前,session和form中有
	//令牌可以在conf中配置;可以在页面设置不显示令牌但是一样使用令牌<!--{__NOTOKEN__}-->
	//如果页面中有多个表单,只有一个表单需要令牌,可以在此表单中显示指定:<!--{__TOKEN__}-->
	//create默认获取数据的方法是post方法
	public function index() {
		$this->display();
	}
	
	public function add(){
		$user=new Model('User');
		
//		//不使用create方法验证令牌
//		if (!$user->autoCheckToken($_POST)) {
//			//令牌验证失败的代码;
//			$this->error($user->getError());
//		}else{
//			//获取其中信息$user
//			$user->username;
//			$user->username=md5($user->password);
//	//		dump($user);
//			if ($user->add()) {
//				$this->success('添加成功');
//			}else{
//				$this->error($user->getError());
//			}
//		}
		
		
		//返回的数组信息如果用自动填充,返回值和信息更多
		if ($vo=$user->create()) {
//			//这个方法是执行成功的一个方法,会给出页面的各种信息
//			dump($vo);
//			//successs模板可以在ThinkPHP的example中找到,放入到default中的public目录中
//			$this->success('create成功');
			
			//获取其中信息$user
			$user->username=md5($user->password);
//			dump($user);
			if ($user->add()) {
				$this->success('添加成功');
			}else{
				$this->error($user->getError());
			}
		}else {
			//如果执行失败,代码不会继续向后执行
//			dump($vo);
//			dump($user);
			//error模板可以在ThinkPHP的example中找到,放入到default中的public目录中
			$this->error($user->getError());
		}
	}
	
	public function curd(){
		$user=M('user');
		//find()查询单条记录
		//select()查询所有信息
		//findAll()就是select的同名方法
//		$find=$user->find();
//		$select=$user->select();
//		$findAll=$user->findAll();
//		dump($find);
//		dump($select);
//		dump($findAll);
		
		//一:查询涉及到一个连贯操作问题;手册:5.3.10
		//1.根据条件进行查询where中可以通过字符串、数组、对象来传值
		//函数有:data、where、limit、order、field、group、having(sql一致,二次过滤结果集)、page(多用pageView来进行分页)
		//data方法可以被替代用于save当中传值、add、delete的方法时
//		$select=$user->select(array('where'=>'id>1','limit'=>'2,8','order'=>'id desc'));
//		$select=$user->where('id=3')->find();
//		$select=$user->where('id>1')->limit('2')->order('id desc')->field('id,username')->select();
		
		//2.$user->table()用来操作多张表;也可以通过field来限制查询列
//		$select=$user->table(array('tb_user'=>'user','tb_user_message'=>'m'))->where('user.id=m.id')->select();
//		$select=$user->table('tb_user user,tb_user_message m')->where('user.id=m.id')->select();
		
		//3.$user->join()
//		$select=$user->join('user on user.id=user_message.id')->select();

		//4.$user->distinct()
//		$select=$user->distinct(true)->select();

		//5.关联模型:$user->relation()

		//6.锁:$user->lock()	
		//基本上可以不用考虑锁机制(mysql5.0的myisam引擎支持表级锁,innodB引擎支持行级锁)
//		$select=$user->lock(true)->select();
		
		//二:getField()
//		$select=$user->where('id>1')->getField('id,username');
		
		
		//更新操作:返回值是受影响行数
		//1.save()中可以直接传入想要更改的数据,格式:字段信息数组
		//可以不写where,但是数组中必须模拟的where条件
//		$data['id']='4';
//		$data['username']='aaaa';
//		$data['password']='aaaa';
//		$select=$user->where('id=4')->save($data);
//		$select=$user->where('id=4')->data($data);
		//1.setField()参数:字段,值
//		$select=$user->where('id=4')->setField(array('username','password'),array('google','google'));
		//2.setInc():对数字字段进行的增加更新操作。参数:字段、where、增加的整型(默认加一)
//		$select=$user->setInc('price','id=2',1);
		//3.setDec()对数字字段进行的减少更新操作。参数:字段、where、减少的整型(默认减一)
//		$select=$user->setDec('price','id=2',1);
		
		//add操作:返回插入的id
//		$data['username']='aaaa';
//		$data['password']='aaaa';
//		$select=$user->add($data);
//		$select=$user->data($data)->add();
		
		//delete操作:受影响的行数
//		$select=$user->delete(6);
//		$select=$user->where('id>4')->delete();
//		$select=$user->where('id>1')->limit('1')->order('id desc')->delete();
		dump($select);
		
		//实现更新指定id的数据
//		$this->display();
	}
	public function update(){
		$user=new Model('User');
		//返回的数组信息如果用自动填充,返回值和信息更多
		if ($vo=$user->create()) {
			$user->username=md5($user->password);
			if ($user->save()) {
				$this->success('添加成功');
			}else{
				$this->error($user->getError());
			}
		}else {
			$this->error($user->getError());
		}
	}
}
?>

html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CURD</title>
</head>
<body>
<form action="__URL__/update" method="post">
	<input type="text" name="username"/>
	<input type="text" name="password"/>
	<input type="hidden" name="id" value="4">
	<input type="submit" value="提交"/>
	<!--{__NOTOKEN__}-->
</form>
</body>
</html>


UR10e+D435+ag95夹爪 gazebo 仿真记录(一) 学习仿真环境gazebo下利用UR10e机械臂搭建模拟平台,此博客用于记录搭建过程!!主要参考光头明明、总有一天全城的人都要高看我们和bug404_三位博主。最终自己功能包的主要参考了bug404_的ur_platform,感觉这个结构比较合理。运行环境:Ubuntu18.04+Ros-melodic+Gazebo9。 阅读详情

相关推荐

Gamit 数据处理,相关的文件配置

一、处理前准备 1、在主文件夹内新建test项目文件,项目内新建brdc、igs和rinex三个文件夹,分别存放广播星历,精密星历几观测值文件,所用的命令分别为sh_get_nav、sh_get_orbits和sh_get_rinex (若文件为.Z,用gunzip命令解压,若仍为d,用命令sh_crx2rnx -f 命令解压为o文件) 2、进入test项目文件夹,链接tables,运行 sh_setup -yr 2015 -apr itrf08_com.apr 3、生成station.info文件。 将t

CodeDoraemon的博客 3375

thinkphp5多对多关联,中间表进行多态关联

这是中间表,不要问我为什么这么设计,这是领导要求的 CREATE TABLE `at_relation_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `aid` int(11) NOT NULL COMMENT 'aid', `bid` int(11) NOT NULL COMMENT 'bid', `type` int(2) N...

小人物大梦想 5353

基于SHIS凝视型短波红外高光谱相机(900-1700nm)区分不同宝石的差异性和可分性(宝石分选)

SHIS系列凝视型高光谱相机基于液晶可调谐滤波器(LCTF),通过电控LCTF进行连续细分窄波段分光,对每个波段进行高分辨率的二维面阵成像,进行图像处理后,获得完整的高光谱高清图像序列。具有低功耗、小型化、使用方便和易于扩展的优势。其工作波段覆盖400nm至1000nm,能够捕捉宝石在不同波长下的光谱特征,为宝石鉴定提供了新的工具。

wayho的博客 707

tp5 fastadmin hasmany一对多关联并求值排序

tp5 fastadmin hasmany一对多关联并求值排序

孙奋斗的博客 1715

匈牙利算法解决指派问题清晰流程

匈牙利算法解决指派问题清晰流程 百度词条上,指派问题(Assignment problem)是这么定义的:在满足特定指派要求条件下,使指派方案总体效果最佳。如:有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包:有若干班级需要安排在若干教室里上课等。   一、做减法(归约): 行归约:每行元素减去该行最小元素。 列归约:每行元素减去该行最小元素。

siss0siss的博客 6万+

Windows系统下com0com虚拟串口安装与驱动签名禁用全攻略

本文详细介绍了在Windows系统下安装com0com虚拟串口工具的全过程,包括驱动签名问题的解决方法。通过禁用驱动程序强制签名,用户可以顺利安装并使用这款开源工具创建虚拟串口对,适用于软件开发测试、硬件调试等场景。文章还提供了验证虚拟串口功能的实用技巧和常见问题解决方案。

weixin_28720573的博客 386

fastadmin一对多关联查询,搜索功能

在商城的订单模块中,需要通过输入商品名称来查询出符合条件的订单记录。目前订单表和订单商品表是分开的,在查询订单列表使用关联查询。(小白记录,大牛轻喷) 一、首先使用fastadmin查出记录,过程如下图: 1、下图是model模块,一对多查询,需使用hasMany来进行关联。(ps:与之对比的是上面的“xsaagency”是belongsTo) 2、下图是控制器模块中的写法(使用crud时会自动生成) 3、下图是以上步骤生成的数据格式(红色是1条订单记录,蓝色是n个商品。一对多) 4、下图是js模块(

misshow 4715

记录Rancher集群中coredns问题导致的服务DNS解析超时

coredns问题处理

1359

模型--一对多关联

关联定义 hasMany('关联模型','外键','主键'); 关联模型(必须):模型名或者模型类名 外键:关联模型外键,默认的外键名规则是当前模型名+_id 主键:当前模型主键,一般自动获取也可以指定传入 例如一篇文章可以有多个评论 <?php namespace app\index\model; use think\Model; class Article extends Model { public function comments() {

新新新新新的博客 1070

推荐一个直接用于项目开发的PID库!很好用,很稳定

关注、星标公众号,不错过精彩内容大家好,我是小麦。最近有朋友问到有没有现成的C语言PID库。当然有了!现在我就准备给大家安利一下了。一般同学会去某度上搜,看到各种各样版本的PID示例,或者...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 9023

Puchem化合物数据批量抓取采集_宝典_教程_Python爬虫

本文共计6500字,导出到PDF达42页(含代码)。从0教你如何抓取Pubchem化合物数据。 1、 Pubchem介绍 ​ Pubchem是美国国立卫生研究院(NIH)的开放式化学数据库,自2004年推出以来,pubchem已成为科学家、学生和公众的重要化学信息资源。其专门针对化学结构搜索,是网络药理学研究经常用到的数据库之一,不仅使用方便而且免费。 ​ PubChem主要包含小分子,但也包含较大的分子,例如核苷酸,碳水化合物,脂质,肽和化学修饰的大分子。收集有关化学结构,标识符,化学和物理性..

qq_34843422的博客 6073

ThinkPHP的CURD方法及查询方法一览

所谓CURD。即对数据库操作的四个基本操作(CURD):C:create(创建)、U:update(更新)、R:read(读取)和D:detele(删除)。 在ThinkPHP中,并不是一定以这几个名字的方法,这里列出常见的:select,find,findAll,save,c

万维网 5646

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

关于ThinkPHP中的CURD操作

什么是CURD?CURD就是模型操作数据表的基本操作,C(Create)、U(Update)、R(Read)、D(Delete)操作就是增删改查操作。增加操作Create:在mysql中增加操作使用的语法格式是:insert into 语句,而ThinkPHP中系统给我们封装了好了一个模型方法,可以通过方法来实现数据的增加操作,这个方法就是add方法:$model -&gt; add(一维数组);...

亭有枇杷树 581

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

thinkphp 关联模型学习笔记

关联定义ThinkPHP可以很轻松的完成数据表的关联CURD操作,目前支持的关联关系包括下面四种:HAS_ONE、BELONGS_TO、HAS_MANY、MANY_TO_MANY一对一关联 :包括HAS_ONE 和 BELONGS_TO 一对多关联 :包括HAS_MANY 和 BELONGS_TO 多对多关联 :MANY_TO_MANY关联定义的格式是:namespace Home\Model;

... 1014

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ThinkPHP框架中的CURD(更新中)的实例~~

ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建、更新、读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法。CURD操作通常是可以和连贯操作配合完成的。下面来分析下各自的用法: (下面的CURD操作我们均以M方法创建模型实例来说明,因为不涉及到具体的业务逻辑) 一、创建操作(Create) 在ThinkPHP中使

fashion_luo的专栏 7649

CURD操作

CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD。它代表创建(Create) 、 更新(Update) 、 读取(Read) 和 删除(Delete) 操作。CURD 定义了用于处理数据的基本原子操作。创建数据大多数情况下,CURD的Create操作通常会通过表单来提交数据,首先,我们可以Home模块的View/Form目录下面创建一个add.html 模板文件。...

N_stardust的博客 6891

thinkphp mysql save_ThinkPHP CURD mysql操作

ThinkPHP CURD操作ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建、更新、读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法。CURD操作通常是可以和连贯操作配合完成的。下面来分析下各自的用法:(下面的CURD操作我们均以M方法创建模型实例来说明,因为不涉及到具体的业务逻辑)http://doc.think...

weixin_39928099的博客 254

EasyAdmin 关联查询开发:用 CURD 命令打造多表联查的商品管理模块

EasyAdmin 是一款基于 ThinkPHP6.0 + layui 的快速开发后台管理系统,它自带完善的权限管理模块和敏捷的开发方式,而其中最受新手欢迎的亮点,就是**一键 CURD 命令**。通过它,你甚至不需要手写控制器、模型和视图,就能自动生成一个完整的功能模块。今天这篇文章,我们就以项目内置的“商品管理”为例,教你用 **EasyAdmin 关联查询** 和 CURD 命令,快速打造一

gitblog_00177的博客 319

php 中curd表达啥,你知道THINKPHP CURD操作数据库的返回值吗? | 我是程序员

ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建、更新、读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法。CURD操作通常是可以和连贯操作配合完成的。很多学习使用THINKPHP的程序员都会熟悉和了解CURD的操作,但是你是否知道THINKPHP CURD操作数据库的返回值是什么吗?一、创建操作(Create)在Th...

weixin_39795292的博客 260

ThinkPHP3.2学习笔记3——模型、AR模式、辅助方法、统计查询

ThinkPHP学习笔记3ThinkPHP中的模型配置数据库的连接数据库/表创建什么是模型模型的创建模型的实例化操作1. 普通的实例化方法2.快速实例化方法D方法实例化M方法实例化D方法和M方法的区别CURD操作增加操作add()添加多个记录addAll()修改操作save() ThinkPHP中的模型 配置数据库的连接 数据库的连接配置项可以在系统的主配置文件ThinkPHP/Cof/conve...

DonkeyL's 1238

Thinkphp 下的关联模型的使用

通常我们所说的关联关系包括下面三种: ☆ 一对一关联:ONE_TO_ONE,包括HAS_ONE和BELONGS_TO ☆ 一对多关联:ONE_TO_MANY,包括HAS_MANY和BELONGS_TO ☆ 多对多关联:MANY_TO_MANY 关联关系必然有一个参照表,例如: 有一个用户注册表xp_user和一个用户信息表xp_info xp_user有用户的账号、密码 xp_i

qq_26702065的博客 646

ThinkPHP 学习杂记(一) CURD很好很强大

CURD的意思就是数据库四种操作的合称,即“Create,Update,Read,Delete(创建,修改,读取,删除)”,在开发指南里也有详细介绍。今天是第一天全面学习ThinkPHP,分别用代码直接输出方式做了一个Hello,ThinkPHP的例子,另外也用模板文件方式也做了一个,第一次感受到ThinkPHP的简单与方便。下午仔细看了一下CURD的操作,作一下笔记,就当是复习一下今天学到的新东

CaterPillar's IT Lifes 1894

ThinkPHP中简单的CURD操作

前言 我们通过一个简答例子来简述CURD的操作。首先看一下数据库的样子,其中id为自增行,其它是varchar 一、查询操作 首先,创建在Controller文件夹下创建一个User控制器,在该控制器下写我们的查询实现方法。 <?php namespace Home\Controller; use Think\Controller; class UserController...

被罚站的树 67

php 模型 关联,ThinkPHP关联模型操作实例分析

通常我们所说的关联关系包括下面三种:◇ 一对一关联 : ONE_TO_ONE , 包括 HAS_ONE 和 BELONGS_TO◇ 一对多关联 : ONE_TO_MANY , 包括 HAS_MANY 和 BELONGS_TO◇ 多对多关联 : MANY_TO_MANY关联定义数据表的关联 CURD 操作,目前支持的关联关系包括下面四种:HAS_ONE 、 BELONGS_TO 、 HAS_MANY...

weixin_33498081的博客 367

使用ThinkPHP扩展,实现Redis的CURD操作。

一、概述 Redis是一个NoSQL数据库,由于其数据类型的差异,所以要在MVC框架中实现CURD操作,比较繁锁。事实上在ThinkPHP框架中,只能实现简单的缓存应用。而不像MongoDB那样能够实现常见数据库的CURD操作。本文章将通过扩展的方式,实现Redis的CURD操作,这样我们就可以像操作普通的Mysql数据库那样实现Redis的编程了。 二、实现过程 接下为将以Thin

xiaoyuehan007的专栏 5126
上一篇: ThinkPHP学习笔记(七)实例化中create方法的作用,以及令牌的使用
下一篇: ThinkPHP学习笔记(八)一个用户增删改查的小例子
阳小良
博客等级 码龄17年 54粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值