【发布时间】:2021-12-17 08:25:45
【问题描述】:
我有一些数据要更新,我想使用这些数据更新表中的所有行。因此,我尝试获取所有数据,然后遍历我的数据并使用新数据设置行,但它仅适用于第一行。如何更新我的所有行?
这是我的代码,我使用 activerecord 来更新:
$replaceid = $_POST['pid'];
$product = ProductModel::find()->where(['createdby'=>$uid])->orWhere(['modifiedby'=>$uid])->all();
if(isset($product)) {
foreach ($product as $p) {
$p->createdby = $replaceid;
$p->modifiedby = $replaceid;
$p->update(false);
}
}
这只是更新 createdby 但对于 modifiedby 仍然相同..这里有什么问题?
【问题讨论】:
-
$replaceid是否不等于modifiedby的初始值(更新前)? -
@Akina 是的,之前的值不同
-
暂时在你的 MySQL 上启用 General Log,看看 MySQL 从程序中收到了什么 SQL 查询。
标签: php mysql activerecord