where ([' seriesId'=>1600])->orderBy('ID');$cardNum=2;foreach(">
Saya cuba melakukan migrasi yang melaksanakan berbilang pertanyaan pada jadual berbeza pada masa yang sama
$sql = ''; $sql .= "UPDATE card_series SET Code = 903 WHERE ID = 1600;"; $cardsSeries1600 = CardList::find() ->where(['seriesId' => 1600]) ->orderBy('ID'); $cardNum = 2; foreach ($cardsSeries1600->each() as $card) { if ($card->client_id != NULL) { $sql .= "DELETE FROM client_cards WHERE card_id = ".$card->ID.";"; } $number = str_pad($cardNum, 8, "0", STR_PAD_LEFT); $cardId = (1903).$number; $sql .= "UPDATE card_list SET ID = '".$cardId."', Code = 903, Number = '".$number."' WHERE ID = ".$card->ID.";"; $sql .= "UPDATE card_list_log SET card_id = '".$cardId."', Code = 903, Number = '".$number."' WHERE card_id = ".$card->ID.";"; $cardNum++; } \Yii::$app->db->createCommand($sql)->execute();
Tapi akhirnya, saya hanya ada satu permintaan pertamaUPDATE card_series SET Code = 903 WHERE ID = 1600;
Saya cuba mencetak pembolehubah$sql
dan semua permintaan ada di sana tetapi hanya permintaan pertama telah dilaksanakan
Apakah yang boleh saya lakukan untuk membuat semua permintaan dilaksanakan satu demi satu?
Anda boleh mencuba kaedah berikut.