首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QueryBuilder lastInsertId()

QueryBuilder lastInsertId()
EN

Stack Overflow用户
提问于 2019-04-03 21:59:27
回答 2查看 1.9K关注 0票数 0

我想要条目的最后一个UID。mysql为"insertId()“。这在Extbase中是如何工作的?

代码语言:javascript
复制
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table);
$queryBuilder
   ->insert($table)
   ->values([
       'test_id'          => 1,
       'test2_id'         => 2,
   ]);

$queryBuilder->execute();

$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table2);
$queryBuilder
   ->insert($table2)
   ->values([
       'uid_local'         => ?, // uid from $table
       'uid_foreign'       => 1
   ]);
$queryBuilder->execute();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-03 22:06:12

您可以使用$queryBuilder->getConnection()->lastInsertId();获取最后一个插入id

因此,这将使它:

代码语言:javascript
复制
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table);
$queryBuilder
   ->insert($table)
   ->values([
       'test_id'          => 1,
       'test2_id'         => 2,
   ]);

$queryBuilder->execute();
$tableUid = $queryBuilder->getConnection()->lastInsertId();

$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table2);
$queryBuilder
   ->insert($table2)
   ->values([
       'uid_local'         => $tableUid,
       'uid_foreign'       => 1
   ]);
$queryBuilder->execute();
票数 5
EN

Stack Overflow用户

发布于 2019-04-03 22:05:39

我有点不确定在使用QueryBuilder插入新记录时它是否可用,但是Docs中的迁移指南解释了如何在新的TYPO3数据库层中迁移sql_insert_id()方法

https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Database/Migration/Index.html#sql-insert-id

提示:

(int)$databaseConnectionForPages->lastInsertId('pages');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55496980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档