Php ZF2-如何在select中插入?

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(

我正在尝试在zf2中的表方法中执行insert into select

以下步骤是我用作示例的步骤

我的table方法包含在ZF2中的一个table类中,它是db中与我试图插入的表分开的一个表

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或更高版本才能使用此功能