2016-04-23 3 views
0

は:例えば、ZF2のカスタムPRIMARY KEY列の最後に生成された値を取得する方法は? <code>ZendDbAdapterDriverResultInterface#getGeneratedValue()</code><code>ZendDb</code>で

$action = new Insert('my_table'); 
$action->values($data); 
$sql = new Sql($this->dbAdapter); 
$statement = $sql->prepareStatementForSqlObject($action); 
$result = $statement->execute(); 
$newId = $result->getGeneratedValue(); 

を最後INSERT編エントリのIDを取得するための簡単な方法を提供します。しかしPRIMARY KEY列は「ID」を呼び出す場合には、唯一の仕事に思えます。別の列に定義されているPRIMARY KEYgeneratedValueを取得するにはどうすればよいですか?

+0

? – tasmaniski

+0

MySQL。しかし、データベース抽象化層のおかげで、この場合は問題になりません。 – automatix

+0

getLastInsertValue();うまくいくはずです。 PostgreSQLにはいくつかのケースで問題があります... – tasmaniski

答えて

1

好ましくはZend\Db\TableGateway\TableGatewayを使用し、方法getLastInsertValue()を提供する。あなたが使用しているSQL

use Zend\Db\TableGateway\TableGateway; 
$myTable = new TableGateway('my_table', $this->dbAdapter); 
$action = new Insert('my_table'); 
$action->values($data); 
$myTable->insertWith($action); 
$newId = $myTable->getLastInsertValue(); 
0
$this->dbAdapter->getDriver()->getLastGeneratedValue(); 
関連する問題