我可以使用Yii CDbCommand
我尝试这样的事情
$sql = "INSERT :sourceTable SELECT * FROM :destTable GROUP BY :column1, :column2";
$params = array(
':sourceTable' => 'source_table_name'
...
);
Yii::app()->db->createCommand($sql)->execute($params);
但是得到一个错误,因为Yii param binder在表名和我的查询中添加单引号。有没有办法在没有引号的情况下绑定Yii param?
由于
答案 0 :(得分:0)
不要将表名作为参数传递,只需将其设置为此(不带前缀):
$sql = "INSERT INTO {{source_table_name}} SELECT * FROM {{dest_table_name}} GROUP BY :column1, :column2";
$params = array(
...
);
Yii::app()->db->createCommand($sql)->execute($params);
答案 1 :(得分:0)
不确定是否可行。
但是,您可以将变量直接放入查询中,但首先使用CDbSChema::quoteTableName
。
此处提供更多信息:http://www.yiiframework.com/doc/api/1.1/CDbSchema#quoteTableName。