where ([' seriesId'=>1600])->orderBy('ID');$cardNum=2;foreach("> Führen Sie alle SQL-Abfragen in der yii2-Migration aus-Fragen und Antworten zum chinesischen PHP-Netzwerk
Führen Sie alle SQL-Abfragen in der yii2-Migration aus
P粉505450505
P粉505450505 2023-09-06 18:08:57
0
1
470

Ich versuche eine Migration durchzuführen, die mehrere Abfragen für verschiedene Tabellen gleichzeitig ausführt

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

Aber am Ende habe ich nur eine erste BitteUPDATE card_series SET Code = 903 WHERE ID = 1600;

Ich habe versucht, die Variable$sqlauszudrucken, und alle Anfragen waren vorhanden, aber nur die erste Anfrage wurde ausgeführt

Was kann ich tun, damit alle Anfragen nacheinander ausgeführt werden?

P粉505450505
P粉505450505

Antworte allen (1)
P粉605233764

你可以尝试以下方式。

public function safeUp() { $query = "你的查询语句"; $this->execute($query); }
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!