在ZF2中,插入后获取最后一个插入ID而不使用TableGateway

kul*_*boj 4 zend-framework2

执行insert语句后我需要最后一个插入ID.现在我没有使用TableGateway,因此我无法使用$this->lastInsertValue.如果我需要通过Sql Object而不是Table Gateway Object使用Insert语句,还有哪些其他选项可用.

$objInsert = new Insert('name_master');
$objInsert->values(array( 'username' => $name,
                'price' => 0,
                'is_approval_needed' => 'n'
             ));

$sql = new Sql($this->adapter);

$result = $sql->prepareStatementForSqlObject($objInsert)->execute()->getAffectedRows();
Run Code Online (Sandbox Code Playgroud)

因为我需要使用前一个插入的最后一个插入ID在不同的表中执行多个插入语句,现在我想在我的模型的单个方法中执行它.

Cri*_*isp 14

Zend\Db\Adapter\Driver\DriverInterface指定一个getLastGeneratedValue()方法,所以想必这应该工作...

 $lastId = $this->adapter->getDriver()->getLastGeneratedValue();
Run Code Online (Sandbox Code Playgroud)