我正在编写一个小型框架,我的目标是让我的开发人员在添加/插入资源之后轻松设置重定向到资源的详细信息页面。使用PDO/MySQL获取不止最后一个插入ID使用PDO/MySQL获取不止最后一个插入ID
通常,这将与PDO :: lastInsertID()一样简单,但我使用的不仅仅是ID来标识资源,还使用了资源名称/标题的格式化版本。
例如,一个新的锦标赛可能被称为“测试锦标赛”,因此它的资源URI将是domain.com/tournament/328-test-tournament。
所以当我在插入后重定向时,我需要重定向到'328-test-tournament'而不是'328'。这是出于URL完整性目的而设计的。我不希望人们使用错误匹配的ID和标题访问个人资源。
所以说,我插入后,我希望能够自动返回不仅ID,但为我输入的全部数据集,以便我可以格式化标题和重定向。
我可以在控制器中做到这一点:
$this->TournamentModel->insert();
$id = PDO::lastInsertID();
$title = my_title_formatting_function($_POST['title']);
@header("Location: domain.com/tournament/{$id}-{$title}");
但我想一个解决方案,就是稍微更优雅是这样的:
的$ id = $这个 - > TournamentModel-> lastInsert();
其中lastInsert实际上是核心模型中的公共方法,它不仅检索最后一个插入的标识,而且还检索整个行。然后我会在那里处理标题格式和id连接。
是否有这样的事情存在?或者至少有一个PDO方法返回插入的表,以便我可以使用表名和ID构造一个查询?
插入后,从上一个插入ID中选择所需的所有字段 – 2012-07-14 21:25:37