where (['seriesId'=>1600])->orderBy('ID');$cardNum=2;foreach("> 執行所有的SQL查詢在yii2遷移中-PHP中文網路問答
執行所有的SQL查詢在yii2遷移中
P粉505450505
P粉505450505 2023-09-06 18:08:57
0
1
511

我正在嘗試進行一個遷移,它會同時在不同的表上執行多個查詢

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

但最後,我只有一個第一個請求UPDATE card_series SET Code = 903 WHERE ID = 1600;

#我嘗試列印$sql變量,所有的請求都在那裡,但只有第一個請求被執行

我該如何做才能讓所有的請求一個接一個地執行?

P粉505450505
P粉505450505

全部回覆 (1)
P粉605233764

你可以嘗試以下方式。

public function safeUp() { $query = "你的查询语句"; $this->execute($query); }
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!