thinkphp mysql save_ThinkPHP 更新数据 save方法

ThinkPHP 内置的 save 方法用于向数据表更新数据,相当于 SQL 中的 UPDATE 行为。

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() 方法创建数据对象来更新数据,表单中必须包含一个以主键为名称的隐藏域,才能完成保存操作。

参考阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP 中进行高级的 MySQL 操作,可以使用模型来实现。模型是一种对象关系映射(ORM)工具,它允许你通过 PHP 代码来操作数据库,而不需要编写 SQL 语句。 以下是一些常见的 ThinkPHP 模型操作: 1. 查询数据 使用模型的 select() 方法可以查询数据库中的数据。例如: ``` $users = UserModel::select(); ``` 可以使用 where() 方法添加查询条件。例如: ``` $users = UserModel::where('age', '>', 18)->select(); ``` 可以使用 find() 方法查询单条数据。例如: ``` $user = UserModel::where('id', 1)->find(); ``` 2. 插入数据 使用模型的 save() 方法可以插入数据数据库中。例如: ``` $user = new UserModel; $user->name = 'John'; $user->age = 20; $user->save(); ``` 3. 更新数据 使用模型的 save() 方法可以更新数据库中的数据。例如: ``` $user = UserModel::where('id', 1)->find(); $user->name = 'John Smith'; $user->save(); ``` 可以使用 update() 方法更新多条数据。例如: ``` UserModel::where('age', '>', 18)->update(['is_adult' => true]); ``` 4. 删除数据 使用模型的 delete() 方法可以删除数据库中的数据。例如: ``` $user = UserModel::where('id', 1)->find(); $user->delete(); ``` 可以使用 destroy() 方法删除多条数据。例如: ``` UserModel::where('age', '<', 18)->destroy(); ``` 以上是一些常见的 ThinkPHP 模型操作,你还可以使用其他高级操作,如聚合查询、关联查询等。具体可参考 ThinkPHP 的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值