【发布时间】:2013-11-26 13:54:46
【问题描述】:
我想在 appModel 中编写一个函数,为我想要的每个模型返回下一个自动递增的主 ID。例如在 UserController 我使用$this->user->nextId()。
我知道返回下一个自动递增主 ID 的查询:
SELECT Auto_increment FROM information_schema.tables WHERE table_name='table-name' AND table_schema='db-name'
【问题讨论】:
-
你为什么要这个?这样的代码不可靠。考虑您网站上的两个用户同时存在。两者都同时检索 auto_inc,得到(比如说)42,并且都使用它。一个人将因违反主键而失败。这是一场比赛,有人会输。
-
您应该学习如何正确使用该框架。然后你会发现你甚至从来不需要那个功能。除了 Marc B 提到的:使用它没有意义。
-
是的,你是对的,但我需要它。
-
用户模型只是一个例子。大多数时候一个用户需要下一个 id。
-
我不明白。您似乎自己回答了您的问题:“我想在 appModel 中编写一个返回下一个自动递增主 ID 的函数”。 “我知道返回下一个自动递增主 ID 的查询”。