首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用自动递增的ID时,使用Propel ORM获取插入行的ID

不使用自动递增的ID时,使用Propel ORM获取插入行的ID
EN

Stack Overflow用户
提问于 2015-11-06 00:36:10
回答 2查看 2.1K关注 0票数 2

使用Propel,我可以使用以下命令保存对象

代码语言:javascript
复制
$user = new User;
$user->setName('Test');
$user->save();

$user->getId()将包含插入对象的ID。但只有当我使用自动递增的ID值时,这才能起作用。

当ID由函数生成时,有什么方法可以让它工作吗?

我可以将RETURNING id附加到插入查询的末尾以返回ID,但我不确定是否可以将此数据返回到Propel User对象中。

EN

回答 2

Stack Overflow用户

发布于 2015-11-11 00:29:14

您应该能够通过在您想要水合的对象上调用reload()来检索缺失的(外部创建的)值。

代码语言:javascript
复制
//hydrates fields by database values
$user->reload();
//should return the postgresql-generated-value
$user->getId();

编辑:输入错误

票数 3
EN

Stack Overflow用户

发布于 2015-12-08 01:38:34

如果在MySQL中有一个函数或触发器在每次插入时自动为您创建一个ID,那么您需要为每个会话/连接保存这个生成的值。例如,使用last_insert_id(new_id),这样您就可以使用SELECT last_insert_id();通过PHP语言中的当前连接来获取此值。没有其他逻辑方法可以通过函数/触发器获取这些生成的ID。

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

https://stackoverflow.com/questions/33549991

复制
相关文章

相似问题

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