如何获取最后插入的ID,以及PDO列的名称?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取最后插入的ID,以及PDO列的名称?相关的知识,希望对你有一定的参考价值。
我正在构建一个可以动态插入的QueryBuilder,之后我想返回插入的最后一行,到目前为止我正在使用pdo获取最后一个插入的Id。
$last_id = $this->pdo->lastInsertId();
之后我需要做一个查询
$statement = $this->pdo->prepare("SELECT * FROM {$table_name} WHERE id = :id");
问题是我的专栏
ID
不会一直这样调用,有时它的名称是id_user或id_work等。
我需要的是获取PDO获取最后一个Id的列名。
答案
没有直接的方法来了解字段名称,并且有两种解决方案。
1)如果表格较少,您可以构建一个数组来直接保存“id”字段。例如 :
$tables = ["table_1" : "id_user", "table_2" : "id_work"]
并且您可以在SQL中使用$ tables [$ table_name]而不是id。
2)如果您不知道将使用哪些表,则可以在生成查询sql之前直接通过PDO分析表。
例如
$stmt = $pdo->prepare('DESC tablename');
$stmt->execute();
$table_fields = $stmt->fetchAll(PDO::FETCH_COLUMN);
foreach($table_fields as $field){
if($field["Extra"] == "auto_increment"){
$field_id_name = $field["Field"];
break;
}
}
以上是关于如何获取最后插入的ID,以及PDO列的名称?的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 PHP-PDO 记录查询时获取最后一个插入 ID