在pdo CRUD上获取最后一个ID

问题描述 投票:0回答:1

我需要获取数据库中插入的最后一个ID。

我正在使用一个小的CRUD,并且试图将其添加到代码中。

我知道在捕获错误之前必须先调用它,但是如果需要调用,我将其设为“不可用”。

CRUD的插入部分:

  private function buildInsert($arrayData)
  {
    $sql    = '';
    $fields = '';
    $values = '';

    foreach ($arrayData as $key => $value)
    {
      $fields .= $key.', ';
      $values .= '?, ';
    }

    $fields = (substr($fields, -2) == ', ') ? trim(substr($fields, 0, (strlen($fields) - 2))) : $fields;

    $values = (substr($values, -2) == ', ') ? trim(substr($values, 0, (strlen($values) - 2))) : $values;

    $sql .= "INSERT INTO {$this->table} (".$fields.")VALUES(".$values.")";

    return trim($sql);
  }

  public function insert($arrayData)
  {
    try
    {

      $sql = $this->buildInsert($arrayData);

      $stm = $this->pdo->prepare($sql);

      $count = 1;
      foreach ($arrayData as $value)
      {
        $stm->bindValue($count, $value);
        $count++;
      }

      $result = $stm->execute();
      return $result;
    }
    catch (PDOException $e)
    {
      echo 'Error: '.$e->getMessage();
    }
  }

我已经尝试过$ stm-> lastInsertId();但它不起作用,或者我不知道如何将其传递并使其可用。

有什么建议吗?

问候

php pdo crud
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.