Zend Framework:如何检索最后插入的行的 id?

发布于 2024-08-14 04:21:32 字数 205 浏览 10 评论 0原文

我使用以下代码将新行插入到数据库中:

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

How can I get the row id of the this row that I just create?

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

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

How can I get the row id of the this row that I just created?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

橘和柠 2024-08-21 04:21:32

你尝试过这个吗?这也很好用。

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

Did you try this ? This also works fine.

//just after you call your insert($data) function .. use this
$lastInsertId = $this->getAdapter()->lastInsertId();
梦忆晨望 2024-08-21 04:21:32

有一个问题。当调用 $this->getDbTable()->insert($data); 时,您必须确保 $data 包含表的“主键”。例如,如果是自动递增,则为id=null。否则,insert() 将不会返回最后插入的 ID。

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.

记忆消瘦 2024-08-21 04:21:32

尝试下面的代码:

插入数据:

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

获取最后插入的值:

$this->tableGateway->lastInsertValue;

Try below code:

To insert data:

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

Get Last Inserted value:

$this->tableGateway->lastInsertValue;
↘紸啶 2024-08-21 04:21:32

还有 newId 函数,它返回下一个新的 ID,因此您可以使用它来插入新行。

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

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

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

现在您可以使用您的 $id 做任何您想做的事情。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文