Zend Framework: son eklenen satırın kimliği almak nasıl?

4 Cevap php

Bu kod ile benim veritabanına yeni bir satır ekleme ediyorum:

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

Nasıl ben sadece yarattığı bu satırın id alabilirim?

4 Cevap

Bunu denedin mi? Bu da gayet iyi çalışıyor.

//just after you call your insert($data) function .. use this
$lastInsertId = $this->getAdapter()->lastInsertId();

Bir yakaladım. $this->getDbTable()->insert($data); emin $ verileri tablosunun "birincil anahtar" include yapmak zorunda ararken. Örneğin, id=null bu otomatik artış eğer. Aksi takdirde, insert() son eklenen kimliği dönmeyecektir.

Aşağıdaki kodu deneyin:

Veri eklemek için:

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

Son Eklenen değerini alın:

$this->tableGateway->lastInsertValue;

newId function, cadı sonraki yeni kimliği döndürür, böylece yeni bir satır eklemek için kullanabilirsiniz vardır.

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

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

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

Şimdi $id ile ne istersen yapabilirsin.