如何在Yii2中编写插入查询?

时间:2015-05-06 05:55:33

标签: php yii2 insert-query

在Yii2中如何将数据从一个表插入到另一个表中。

此处我有两个表table1table2

现在我需要的是当条件满足时我需要将特定数据从table1传输到table2

帮助在Yii2中为这个场景编写插入查询

这是yii2 docs中提供的插入查询

Yii::$app->db->createCommand()
->insert('user', [
'name' => 'Sam',
'age' => 30,
])->execute();

但我需要根据Yii2查询转换此查询

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;

1 个答案:

答案 0 :(得分:2)

QueryBuilder' insert方法返回:

return 'INSERT INTO ' . $schema->quoteTableName($table)
    . ' (' . implode(', ', $names) . ') VALUES ('
    . implode(', ', $placeholders) . ')';

因此,无法在此处指定SELECT

无法在核心中找到它,我认为它没有实现,因为它非常罕见。

您可以使用以下自定义SQL代码:

$sql = '...';

\Yii::$app->db->createCommand($sql)->execute();

有用的链接:

P.S。我还报告了问题here,因此将来可能会将其添加到核心。如果你现在想要重复使用它,你可以自己实现这样的方法。