where ([' seriesId'=>1600])->orderBy('ID');$cardNum=2;foreach("> Exécuter toutes les requêtes SQL dans la migration yii2-Questions et réponses sur le réseau chinois PHP
Exécuter toutes les requêtes SQL dans la migration yii2
P粉505450505
P粉505450505 2023-09-06 18:08:57
0
1
469

J'essaie de faire une migration qui exécute plusieurs requêtes sur différentes tables en même temps

$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();

Mais au final, je n'ai qu'une première demandeUPDATE card_series SET Code = 903 WHERE ID = 1600;

J'ai essayé d'imprimer la variable$sqlet toutes les requêtes étaient là mais seule la première requête a été exécutée

Que puis-je faire pour que toutes les requêtes s'exécutent les unes après les autres ?

P粉505450505
P粉505450505

répondre à tous (1)
P粉605233764

Vous pouvez essayer les méthodes suivantes.

public function safeUp() { $query = "你的查询语句"; $this->execute($query); }
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!