我正在尝试更新 Yii 中的多行:
$list = array(1, 2, 3, 4, 5);
foreach($list as $id) {
$query = "UPDATE products SET photos=crawler.photos, status=crawler.status WHERE id=crawler.product_id AND crawler.product_id=$id;";
}
Run Code Online (Sandbox Code Playgroud)
我是 Yii 的新手。基本上,我想用表products中的值更新表中的行scrape(使用特定的id,来自$list)。但不是与foreach(),而是与updateAll()。
我想应该是这样的
public function actionMyProductsUpdate($id)
{
foreach ($queue as $item) {
$myUpdate = "UPDATE products as a join crawler as b
on ( a.id=b.product_id and b.product_id= $item->id)
SET a.photos=b.photos, a.status=b.status;";
\Yii::$app->db->createCommand($myUpdate)->execute();
}
}
Run Code Online (Sandbox Code Playgroud)
版本2
public function actionMyProductsUpdate($id)
{
$myUpdate = "UPDATE products as a join crawler as b
on ( a.id=b.product_id and b.product_id in $list )
SET a.photos=b.photos, a.status=b.status;";
\Yii::$app->db->createCommand($myUpdate)->execute();
}
Run Code Online (Sandbox Code Playgroud)