Rumah > Soal Jawab > teks badan
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 pertama UPDATE 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?
P粉6052337642023-09-07 09:11:40
Anda boleh mencuba kaedah berikut.
public function safeUp() { $query = "你的查询语句"; $this->execute($query); }