0

我使用以下选项初始化类:

$options = array(
      PDO::ATTR_PERSISTENT => true, 
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);

然后我的行为是这样的

$this->sql = trim($sql);
$this->bind = $this->cleanup($bind);
$this->error = "";

try {
   $pdostmt = $this->prepare($this->sql);
   if($pdostmt->execute($this->bind) !== false) {
       if(preg_match("/^(" . implode("|", array("select", "describe", "pragma")) . ") /i", $this->sql))
           return $pdostmt->fetchAll(PDO::FETCH_ASSOC);
       elseif(preg_match("/^(" . implode("|", array("delete", "update")) . ") /i", $this->sql))
           return $pdostmt->rowCount();
       elseif(preg_match("/^(" . implode("|", array("insert")) . ") /i", $this->sql))
           return $pdostmt->lastInsertId();
}

那是因为在 INSERT 之后我需要返回最后插入的 id。但有人告诉我 lastInsertId() 不是函数。所以它不起作用。

任何的想法?也许错误的选择?谢谢你

4

1 回答 1

4

它在PDO对象中,而不是在PDOStatement.

http://php.net/manual/en/pdo.lastinsertid.php

于 2013-05-16T15:20:53.480 回答