PDO lastInsertId() 始终返回 0
2022-08-30 19:54:26
我遇到了一个问题。我的框架在 PHP 5.3.0 中运行良好。我将PHP版本升级到PHP 5.4.x,并且我的框架的某些部分开始出现一些问题。
PHP 版本升级后,始终返回 。PDO lastInsterId()
0
我有名为 的自动增量字段。它正在将数据添加到数据库,没有任何问题。id
由于某种原因,我一直得到0作为最后一个插入ID。
这是我的代码;
数据库对象.php
public static function create () {
global $db;
$attributes = self::sanitize(static::$fields);
$sql = "INSERT INTO ".PREFIX.static::$table_name." (";
$sql .= join(", ", array_keys($attributes));
$sql .= ") VALUE (:";
$sql .= join(", :", array_keys($attributes));
$sql .= ")";
return ($db->crudQuery($sql, $attributes)) ? true : false;
}
public static function lastInsertID () {
global $db;
return $db->handler->lastInsertId();
}
数据库.php
public function crudQuery($sql, $data) {
$sth = $this->handler->prepare($sql);
return $sth->execute($data);
}
调用第一个方法,然后调用方法。正如我之前提到的,我可以成功地将数据添加到MySQL数据库。不幸的是,当我调用方法时,它总是返回0。create()
crudQuery()
lastInsterID()
如果您能在我使用SQL Query获得最后一个ID之前帮助我解决此问题,我将非常高兴(: