博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP 更新数据 save方法
阅读量:7095 次
发布时间:2019-06-28

本文共 1681 字,大约阅读时间需要 5 分钟。

hot3.png

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

例子:

public function update(){    header("Content-Type:text/html; charset=utf-8");    $Dao = M("User");    // 需要更新的数据    $data['email'] = 'Jack@163.com';    // 更新的条件    $condition['username'] = 'Jack';    $result = $Dao->where($condition)->save($data);    //或者:$result= $Dao->where($condition)->data($data)->save();    if($result !== false){        echo '数据更新成功!';    }else{        echo '数据更新失败!';    }}

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

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

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

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

使用主键的例子:

public function update(){    header("Content-Type:text/html; charset=utf-8");    $Dao = M("User");    // 需要更新的数据    $data['email'] = 'Jack@163.com';    $data['uid'] = 2;    $result = $Dao->save($data);    if($result !== false){        echo '数据更新成功!';    }else{        echo '数据更新失败!';    }}

如果需要更新的数据里面包含主键,那么 ThinkPHP 会自动把主键的值作为条件来更新。上面的例子跟下面的效果相同:

// 需要更新的数据    $data['email'] = 'Jack@163.com';    // 更新的条件    $condition['uid'] = 2;    $result = $Dao->where($condition)->save($data);

如果是表单数据,还可以使用 create() 方法创建数据对象来更新数据:

public function update(){    header("Content-Type:text/html; charset=utf-8");    $Dao = D("User");    if($vo = $Dao->create()) {        $result = $Dao->save();        if($result !== false){            echo '数据更新成功!';        }else{            echo '数据更新失败!';        }    }else{        $this->error($Form->getError());    }}

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

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

参考阅读

  1. ThinkPHP Where 条件
  2. ThinkPHP 连贯操作

转载于:https://my.oschina.net/wxweven/blog/56964

你可能感兴趣的文章
整数A和B的二进制表示有多少位不同
查看>>
获取后台数据显示在网页(一)
查看>>
POJ-2349 Arctic Network---MST的第m长的边
查看>>
【Unity3D入门教程】游戏开发利器UGUI的基本使用方法
查看>>
wordpress博客服务器迁移过程中总结
查看>>
leetcode 83. Remove Duplicates from Sorted List
查看>>
利用JS实现闪烁字体
查看>>
【原创】菜鸟版Android 笔记2- Activity
查看>>
使用JAVA反射初始化数组(转)
查看>>
IIS7.5解决应用程序池回收假死问题
查看>>
如何配置oracle数据库的连接
查看>>
[BJOI2019]排兵布阵——分组背包
查看>>
Python之List列表的增删改查
查看>>
DataTrigger 绑定枚举
查看>>
单节点GI(ASM)+DB 安装以及它对oracle DB自动重启的守护(11g)
查看>>
数池塘
查看>>
3.28.3
查看>>
a common method to rotate the image
查看>>
测试计划
查看>>
深拷贝与浅拷贝
查看>>