如何在 php 中使用 prepare 语句获取 insert_id? [复制]

Posted

技术标签:

【中文标题】如何在 php 中使用 prepare 语句获取 insert_id? [复制]【英文标题】:how can i get the insert_id using prepare statement in php? [duplicate] 【发布时间】:2018-05-19 01:39:13 【问题描述】:

我尝试过,但无法从函数中获取 insert_id。我做了一个类调用函数,但我不明白我怎样才能得到它。请参阅下面的代码。

class DatabaseConnection 
protected $pdo;
public function __construct() 
 try 
   $this->pdo = new PDO('mysql:host=localhost;dbname=xxx', 'root', '');
  catch(PDOException $e) 
  exit('Database error');
  
 


class Invoice extends DatabaseConnection 
  public function order($rename, $location) 
  $query = $this->pdo->prepare("INSERT INTO orderlist (re_name, location) VALUES (?, ?)");
  $query -> execute(array($rename, $location));


$user = new Invoice();
if($_SERVER['REQUEST_METHOD'] == 'POST') 
   $rename = $_POST['re_name'];
   $location = $_POST['location'];
   $insertOrder  = $user->order($rename, $location); // call the function here
   $insertid = ____ // I want to get id using insert_id in here see blank space.

数据已成功插入,但如何获取我最近插入数据的 id。帮帮我。

【问题讨论】:

你的id是自动递增字段吗? 执行 $pstm->execute() 后调用 insert_id; $pstm->insert_id; 是的。我的 id 是自动递增字段。 可以使用 max() 获取最后插入的id 我可以从外部函数中获取 id 吗? 【参考方案1】:

如果你尝试了它会不会起作用:

$user->getPdo->lastInsertId();

Details

【讨论】:

它有效。非常感谢。

以上是关于如何在 php 中使用 prepare 语句获取 insert_id? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

php中使用pdo使用prepare预处理语句能同时提供多条吗

PHP PDO - 关闭语句 - 不能创建超过 max_prepared_stmt_count 语句

PHP 使用 Mysqli 的 prepare 语句有啥好处?

如何在使用 mysqli prepare 时获取 assoc 数组

PHP:PDO prepare预处理

使用 PHP 和 MSSQL 准备好的语句