gpt4 book ai didi

php - 从 MyISAM 切换到 InnoDB 后 Eloquent save() 不工作

转载 作者:行者123 更新时间:2023-11-29 02:56:29 25 4
gpt4 key购买 nike

我刚刚通过以下问题将 MySQL 数据库的所有表从 MyISAM 转换为 InnoDB:

ALTER TABLE month_fees ENGINE=InnoDB;

在将表引擎转换为 InnoDB 之前,以下代码运行良好:

$m = MonthFee::where('id', Input::get('h_mf_id'))->first();
$m->deposit_date = $data['depositDate'];
$m->deposit_amount += $data['depositAmount'];
$m->relaxation += $data['relaxation'];
if($m->save()){
Log::info('saved'.$m->deposit_date.'amount='.$m->deposit_amount);
}

但是现在,它并没有更新数据库中的表。显然,Eloquent/Laravel 没有给出任何错误。正如您在 save() 成功时看到的那样,我记录了一些变量,即使这些值也记录在日志文件中。

当我只将表引擎改回 MyISAM 时,一切都开始正常工作。

这里有什么问题吗?

最佳答案

使用 find() 方法而不是这样的 where()

$m = MonthFee::find(Input::get('h_mf_id'));
$m->deposit_date = $data['depositDate'];
$m->deposit_amount += $data['depositAmount'];
$m->relaxation += $data['relaxation'];
if($m->save()){
Log::info('saved'.$m->deposit_date.'amount='.$m->deposit_amount);
}

关于php - 从 MyISAM 切换到 InnoDB 后 Eloquent save() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30190967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com