本节的使用基于六、七的基于数据库的链接和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>
分享到:
相关推荐
ThinkPHP学习笔记(五)关联的SQL文件
比如服务器A部署了数据库A,里面储存的是用户的信息记录user,服务器B部署了数据库B,里面存储的是订单信息记录order,两个表可以通过user_id进行关联,如果是这样,用thinkPHP5该如何进行关联查询的
主要介绍了ThinkPHP5联合(关联)查询、多条件查询与聚合查询,结合实例形式总结分析了thinkPHP5常用查询操作技巧,需要的朋友可以参考下
本人博客ThinkPHP学习笔记(四)所使用的数据库文件
thinkPHP之CURD开发简单源码,适合新手学习
thinkphp5.1跨服务器,thinkphp连接不同数据库
thinkphp CURD完整案例,控制器,配置文件,增删查改完成案例,带数据库。新建数据库study ,然后导入my_study.sql文件。
thinkphp学习笔记参考.pdf
easyadmin是有layui+tp6组合的后端管理; 一键生成指令php think curd(关联语句+sql文件) EasyAdmin框架以内置快速...备注:在进行CURD命令行之前, 请按照规范设计表结构, 请参数表结构规范模块说明。 实际 以应用。
总计php问题,将常见问题总结在一个文档里面方便阅读
thinkphp3.1.2学习笔记,常用的知识点,可以打印出来每天温习一下
个人学习thinkphp所做的笔记,可能尚且不完整
ThinkPHP数据库操作CURD-9
本资源为个人自学thinkphp的笔记,适合thinkphp入门
本文实例讲述了thinkPHP框架实现多表查询的方法。分享给大家供大家参考,具体如下: 我们可以将两个表连起来一起查询数据,我现在有两张表,一个是feedback表和member表,如图: 总目录: 上代码: $where = ...
拥有九大类、43页,都是作者在学习thinkphp时候做的学习笔记,此适合刚开始学习thinkphp框架人员和学完后复习所用,对php的语法有些了解的人员。此包含thinkphp介绍、配置文件格式与形式、路由、控制器、请求和响应...
thinkphp5 详细笔记新手打基础 快速入门案例 物美价廉,学习参考!!
thinkphp学习资料大全