Heim > Backend-Entwicklung > PHP-Tutorial > ThinkPHP学习札记(八)CURD的的相关操作以及表的关联查询等

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

WBOY
Freigeben: 2016-06-13 12:54:42
Original
862 Leute haben es durchsucht

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

本节的使用基于六、七的基于数据库的链接和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());
		}
	}
}
?>
Nach dem Login kopieren

html



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CURD</title>


Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage