Laksanakan semua pertanyaan SQL dalam penghijrahan yii2
P粉505450505
P粉505450505 2023-09-06 18:08:57
0
1
631

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粉505450505
P粉505450505

membalas semua(1)
P粉605233764

Anda boleh mencuba kaedah berikut.

public function safeUp()
{
    $query = "你的查询语句";
    $this->execute($query);
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan