ThinkPHP 更新数据 save方法
2015-05-02 18:24
393 查看
ThinkPHP save() 方法
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); //或者:$resul t= $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()); } }
如果更新的数据需要做逻辑处理,可以在操作类以对象的方式处理或者在模型内处理,具体可参考《ThinkPHP 表单数据智能写入 create 方法》。
注意:以create() 方法创建数据对象来更新数据,表单中必须包含一个以主键为名称的隐藏域,才能完成保存操作。
数据没变,提交更新,返回false;
数据变,提交更新,返回true;
返回的不是false 而是0 你要用恒等判断 是否提交失败
原文链接
相关文章推荐
- 在使用ThinkPHP时候数据更新的时候,save()方法返回值为0的问题!!!!
- THinkphp save方法 判断如果没有数据更新 报错问题
- ThinkPHP3.2.3下使用create函数更新数据安全使用方法
- ThinkPHP 统计数据(数字字段)更新 setInc 与 setDec 方法
- thinkphp读写分离坑爹!mysql进行update更新数据时报错[HY000]:General error,原因以及解决方法
- thinkphp中save方法更新的值和原来的值一样的时候返回false
- ThinkPHP 更新数据的常用三大方法
- thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败 和数据的自动验证,插入的时候可以自动验证,但更新的时候就不能验证了
- Thinkphp Save方法更新问题
- ThinkPHP 关于用create方法实现数据更新的问题
- thinkphp 修改后的数据和原数据一样,save方法返回值
- thinkphp 的save()不能更新数据解决办法
- ThinkPHP的U方法中数组数据取出方法
- 学习ThinkPHP3.2.2:video8,用M函数的delete方法删除wish表中的所有数据
- 东软软件动态生成对数据表更新操作的方法
- CodeFirst数据表更新方法
- 给thinkphp3.1案例blog添加一个更新的标签的方法
- 【PHP】【Mysql】【thinkphp】,Thinkphp save()方法执行update操作的返回值问题
- Spring3.0.3+hibernate3 save方法成功以后表中没有数据
- THINKPHP 提供数据表联合查询的简单方法