12

次のコードを使用して、データベースに新しい行を挿入しています。

$data = array(
    'key' => 'value'
);
$this->getDbTable()->insert($data);

作成したばかりのこの行の行 ID を取得するにはどうすればよいですか?

4

4 に答える 4

15

これを試しましたか?これもうまくいきます。

//just after you call your insert($data) function .. use this
$lastInsertId = $this->getAdapter()->lastInsertId();
于 2011-06-22T14:42:21.820 に答える
10

1つの落とし穴。電話$this->getDbTable()->insert($data);をかけるときは、$dataにテーブルの「主キー」が含まれていることを確認する必要があります。たとえば、id=null自動インクリメントの場合です。それ以外の場合、insert()最後に挿入されたIDは返されません。

于 2010-06-27T18:33:34.597 に答える
0

関数もありnewId、witch は次の新しい ID を返すので、それを使用して新しい行を挿入できます。

$id = $this->getDbTable->newId('table_name', 'id');

$data = array(
    'id' => $id,
    'data' => $data
);

$this->getDbTable->insertRow('table_name', $data);

これで、あなたの$id.

于 2014-01-13T08:54:27.320 に答える
0

以下のコードを試してください:

データを挿入するには:

$this->tableGateway->insert($data);

最後に挿入された値を取得:

$this->tableGateway->lastInsertValue;
于 2013-05-25T08:59:01.293 に答える