分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

【三十四】thinkphp之curd操作

发布时间:2023-09-06 01:38责任编辑:白小东关键词:thinkphp

1.数据创建(create)

接受提交过来的数据,比如表单提交的 POST(默认)数据。接受到数据后,还可以对数据进行有效的验证、完成、生成等工作

 ????// 这里 create()方法就是数据创建,数据的结果就是提交的 POST 数据的键值对。   // 特别注意的是:提交过来的字段和数据表字段是对应的,否则无法解析 ????//根据表单提交的POST数据,创建数据 ?????var_dump($user->create());

通过$_post接收数据

 ?????//通过数组手工获取数据,覆盖提交的 ?????$data[‘name‘]=‘qqq‘; ?????$data[‘password‘]="456"; ?????$data[‘email‘]="qqq@qq.com"; ?????$data[‘age‘]=52; ?????var_dump($user->create($data)); ?????//通过对象手工获取数据,覆盖提交的 ?????$data=new \stdClass(); ?????$data->name=$_POST[‘name‘]; ?????$data->password=$_POST[‘password‘]; ?????$data->email=$_POST[‘email‘]; ?????$data->age=$_POST[‘age‘]; ?????var_dump($user->create($data)); ?????// 默认是$_POST,传递$_GET修改 ?????var_dump($user->create($_GET));

create()方法可以传递第二个参数,将要操作的模式,有两种:Model::MODEL_INSER和 Model::MODEL _UPDATE,即新增和修改。当没有指定的时候,系统会根据数据源是否包含主键来自动判断,如果包含主键,则就是修改

操作

 ?????// 设置将要新增操作 ?????var_dump($user->create($_POST,Model::MODEL_INSERT));
 ?????//限制可操作的字段 ?????// 提交过来的数据只会接收name字段的值 ?????var_dump($user->field(‘name‘)->create());

2.数据写入(add)

数据写入使用的是 add()方法。

 ????//新增一条数据 ?????// sql:INSERT INTO `user1` (`name`,`password`,`email`,`age`) VALUES (‘caiminfang‘,‘123‘,‘caiminfang@qq.com‘,15) ?????$user=M(‘user1‘); ?????$data[‘name‘]=‘caiminfang‘; ?????$data[‘password‘]="123"; ?????$data[‘email‘]="caiminfang@qq.com"; ?????$data[‘age‘]=15; ?????$user->add($data); ?????// 结合create()方法 ?????// INSERT INTO `user1` (`name`,`password`,`email`,`age`) VALUES (‘cmfcmf‘,‘456‘,‘cmf@qq.com‘,18)
    $data $user->create(); ?????$data[‘name‘]=$_POST[‘name‘]; ?????$data[‘password‘]=$_POST[‘password‘]; ?????$data[‘email‘]=$_POST[‘email‘]; ?????$data[‘age‘]=$_POST[‘age‘]; ?????$user->add($data);
 ?????//INSERT INTO `user1` (`name`) VALUES (‘asdasd‘) ?????//使用data连贯操作 ?????$user=M(‘user1‘); ?????$data=$user->create(); ?????$data[‘name‘]=‘asdasd‘; ?????var_dump($user->data($data)->add()); ?????// data连贯方法,支持字符串、数组、对象 ?????// INSERT INTO `user1` (`name`,`password`,`email`,`age`) VALUES (‘xingshi‘,‘123‘,‘xingshi@qq.com‘,55) ?????$data=‘name=xingshi&password=123&email=xingshi@qq.com&age=55‘; ?????$user->data($data)->add();

 3.数据读取(select)

支持连贯方法的有:http://www.cnblogs.com/8013-cmf/p/8317720.html(请阅读此篇文章)

field和getField的区别:

  1.  field():用于定义要查询的字段
  2. getField():用于查询某个字段的值
 ?????$user=M(‘user1‘); ?????//显示所有数据 ?????// SELECT * FROM `user1` ?????var_dump($user->select()); ?????//显示默认第一条数据 ?????// SELECT * FROM `user1` LIMIT 1 ?????var_dump($user->find()); ?????// 获取第一条name字段的值 ?????// SELECT `name` FROM `user1` LIMIT 1 ??????var_dump($user->getField(‘name‘)); ?????// 获取所有user字段的name值 ?????// SELECT `name` FROM `user1` ??????var_dump($user->getField(‘name‘,true)); ?????//获取所有user的name值和email值 ?????// SELECT `name`,`email` FROM `user1` ?????var_dump($user->getField(‘name,email‘)); ?????//以冒号分隔 ?????// SELECT `name`,`email`,`age` FROM `user1` ?????var_dump($user->getField(‘name,email,age‘,":")); ?????//限制2条数据 ?????//SELECT `name`,`email` FROM `user1` LIMIT 2 ??????var_dump($user->getField(‘name,email‘,2));

4.数据更新(save) 

 主要是对数据的修改操作。

 ?????$user=M(‘user1‘); ?????//修改数据 ?????// UPDATE `user1` SET `name`=‘zxczxc‘ WHERE `id` = 4 ?????$data[‘name‘]="zxczxc"; ?????$map[‘id‘]=4; ?????$user->where($map)->save($data); ?????//默认主键为条件 ?????// UPDATE `user1` SET `name`=‘hello‘ WHERE `id` = 3 ?????$data[‘id‘]=3; ?????$data[‘name‘]="hello"; ?????$user->save($data);

结合create使用save

index.html

<!DOCTYPE html><html><head><meta charset="utf-8"> ???<title></title></head><body><form method="post" action="http://localhost/basic_thinkphp/index.php/Home/Model/save"><!-- 必须要定义id的默认值 --> ???<input type="hidden" name="id" value="3"> ???用户名:<input type="text" name="name"><br/> ???密码:<input type="text" name="password"><br/> ???邮箱:<input type="text" name="email"><br/> ???年龄:<input type="text" name="age"><br/> ???<input type="submit" value="提交"></form></body></html>

 ModelController.class.php

<?phpnamespace Home\Controller;use Think\Controller;use Think\Model;use Think\stdClass;class ModelController extends Controller { ???public function save(){ ?????$user=M(‘user1‘); ?????// 结合create ?????// UPDATE `user1` SET `name`=‘test1‘,`password`=‘456‘,`email`=‘a@qq.com‘,`age`=88 WHERE `id` = 3 ?????$user->create(); ???//post必须包含主键,我是在前端定义的 ?????$user->save();}}
 ?????$user=M(‘user1‘); ?????// 修改某一个值 ?????// UPDATE `user1` SET `name`=‘labixiaoxin‘ WHERE `id` = 3 ?????$map[‘id‘]=3; ?????$user->where($map)->setField(‘name‘,‘labixiaoxin‘); ?????//统计累计,累加累减 ?????// UPDATE `user1` SET `age`=age+1 WHERE `id` = 3 ?????$map[‘id‘]=3; ?????$user->where($map)->setInc(‘age‘,1);

 5.数据删除(delete)

 ???$user=M(‘user1‘); ???// 直接删除主键(id=8) ???// DELETE FROM `user1` WHERE `id` = 8 ???$user->delete(8); ???//根据id删除 ???// DELETE FROM `user1` WHERE `id` = 47 ???$map[‘id‘]=47; ???$user->where($map)->delete(); ???//批量删除多个 ???// DELETE FROM `user1` WHERE `id` IN (‘45‘,‘46‘) ????$user->delete("45,46"); ???//删除年龄为16且按照id倒序的前2个 ???// DELETE FROM `user1` WHERE `age` = 16 ORDER BY `id` DESC LIMIT 2 ???$map[‘age‘]=16; ???$user->where($map)->order(array(‘id‘=>‘DESC‘))->limit(2)->delete(); ???// 删除所有数据 ???echo $user->where(‘1‘)->delete();

6.ActiveReocrd 模式

这种模式最大的特别就是简化了 CURD 的操作,并且采用对象化的操作方式,便于使用和理解。

 ???// 添加一条数据 ???$user = M(‘User‘); ???$user->user = ‘火影忍者‘; ???$user->email = ‘huoyin@qq.com‘; ???$user->date = date(‘Y-m-d H:i:s‘); ???$user->add(); ???//结合create ???$user = M(‘User‘); ???$user->create(); ???$user->date = date(‘Y-m-d H:i:s‘); ???$user->add(); ???//找到主键为4的值 ???$user = M(‘User‘); ???var_dump($user->find(4)) ???//查找user=蜡笔小新的记录 ???$user = M(‘User‘); ???var_dump($user->getByUser(‘蜡笔小新‘)); ???//输出userecho ????$user->user; ???//通过主键查询多个 ???$user = M(‘User‘); ???var_dump($user->select(‘1,2,3‘)); ???//修改一条数据 ???$user = M(‘User‘); ???$user->find(1); ???$user->user = ‘蜡笔老新‘; ???$user->save(); ???//删除当前找到的数据 ???$user = M(‘User‘); ???$user->find(11); ???$user->delete(); ???//删除主键为10的数据 ???$user = M(‘User‘); ???$user->delete(10); ???//删除主键为10,11的数据 ???$user = M(‘User‘); ???$user->delete(‘10,11‘

【三十四】thinkphp之curd操作

原文地址:https://www.cnblogs.com/8013-cmf/p/8321360.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved