Zend Framework: How to retrieve the id of the last inserted row?

后端 未结 4 486
醉酒成梦
醉酒成梦 2021-01-17 13:06

I\'m inserting a new row into my database with this code:

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


        
相关标签:
4条回答
  • 2021-01-17 13:30

    Did you try this ? This also works fine.

    //just after you call your insert($data) function .. use this
    $lastInsertId = $this->getAdapter()->lastInsertId();
    
    0 讨论(0)
  • 2021-01-17 13:40

    Try below code:

    To insert data:

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

    Get Last Inserted value:

    $this->tableGateway->lastInsertValue;
    
    0 讨论(0)
  • 2021-01-17 13:51

    One gotcha. When calling $this->getDbTable()->insert($data); you have to make sure $data include the "primary key" of your table. For example, id=null if it's auto-increment. Otherwise, insert() will not return the last inserted ID.

    0 讨论(0)
  • 2021-01-17 13:53

    There is also newId function, witch returns the next new ID, so you can use it to insert a new row.

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

    Now you can do whatever you want with your $id.

    0 讨论(0)
提交回复
热议问题