0

我正在使用 yii 迁移创建一个父子表,其中子表上有一个外键。我尝试使用执行,但这并没有帮助我获取所需的数据。有没有办法可以查询父表并在子表上插入父ID作为外键?在 phinx 迁移中使用的 fetch()/fetchAll() 之类的东西。

    $this->batchInsert('{{%parent_table}}',
                ['name'],
                [
                    ['P1'],
                    ['P2'],
                    ['P3'],
                    ['P4']
                ]
            );
    $a = $this->execute("select * from parent_table where name = 'P1'");
    // get the data from the table that will get me the id from the above query.

    $this->batchInsert('{{%child_table}}',
                [['name'],['parent_id']],
                [
                    ['C1','<parent id>'],
                    ['C2','<parent id>'],
                    .
                    .
                    .
                ]
            );
4

1 回答 1

2

你需要使用

$sql = <<<SQL
select * from parent_table where name = 'P1'
SQL;

$res = Yii::$app->db->createCommand($sql)->queryAll();

$this->execute()用于执行 sql 语句,例如 update 或delete

编辑

如评论中所述,更好地使用$this->db而不是Yii::$app->db确保您在同一个数据库上运行

于 2021-05-11T16:46:17.673 回答