在 yii 迁移中获取 select 查询的数据
Fetch data for a select query in yii migrations
我正在使用 yii 迁移创建一个父子 table,子 table 上有一个外键。我尝试使用 execute 但这并没有帮助我获取所需的数据。有没有一种方法可以查询父 table 并将父 ID 作为外键插入子 table 中?在 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>'],
.
.
.
]
);
您需要使用
$sql = <<<SQL
select * from parent_table where name = 'P1'
SQL;
$res = Yii::$app->db->createCommand($sql)->queryAll();
$this->execute()
用于执行 sql 语句,如更新或删除
编辑
最好使用 $this->db
而不是 Yii::$app->db
以确保您在同一个数据库上 运行,如评论中所述
我正在使用 yii 迁移创建一个父子 table,子 table 上有一个外键。我尝试使用 execute 但这并没有帮助我获取所需的数据。有没有一种方法可以查询父 table 并将父 ID 作为外键插入子 table 中?在 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>'],
.
.
.
]
);
您需要使用
$sql = <<<SQL
select * from parent_table where name = 'P1'
SQL;
$res = Yii::$app->db->createCommand($sql)->queryAll();
$this->execute()
用于执行 sql 语句,如更新或删除
编辑
最好使用 $this->db
而不是 Yii::$app->db
以确保您在同一个数据库上 运行,如评论中所述