Php ZF2-如何在select中插入?
我正在尝试在zf2中的表方法中执行insert into select 以下步骤是我用作示例的步骤 我的table方法包含在ZF2中的一个table类中,它是db中与我试图插入的表分开的一个表Php ZF2-如何在select中插入?,php,mysql,zend-framework2,Php,Mysql,Zend Framework2,我正在尝试在zf2中的表方法中执行insert into select 以下步骤是我用作示例的步骤 我的table方法包含在ZF2中的一个table类中,它是db中与我试图插入的表分开的一个表 public function addCategoryName($val) { $data = array ( 'CategoryName' => $val); $this->tableGateway->insert(
public function addCategoryName($val)
{
$data = array (
'CategoryName' => $val);
$this->tableGateway->insert($data);
$id = $this->tableGateway->lastInsertValue;
$on = "categoryid = $id";
$select = new Select('actionitems');
$select->columns(array('actionitemid', 'categoryid'))->join('categories', $on, array('actionitemid', 'categoryid'), 'cross');
$adapterInsert = new \Zend\Db\Adapter\Adapter(array(
'driver' => 'pdo_mysql',
'database' => 'actionitemmanager',
'username' => 'username',
'password' => 'password'
));
$insert = new Insert();
$insert->into('actionitemcategories');
$insert->columns(array('actionitemid', 'categoryid'));
$insert->values($select);
//insert with select
$adapterInsert->insertWith($insert);
}
都不是
$insert->values($select)
或
$insert->select($select)
工作
第一次尝试给出的错误是$select必须是数组,而$insert->select($select)给出的错误是select()不是插入方法
如何使此查询正常工作?您引用的Zend Framework功能是:
Zend\Db\Sql\Insert
可以使用Select
对象作为值源(Insert-in…Select
)
我怀疑你使用的是旧版本。您可以比较中的Zend\Db\Sql\Insert
,查看针对无效参数引发的不同异常
您应该将Zend Framework升级到v2.3或更高版本才能使用此功能