我遇到了一个问题。我的框架在 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);
}
第一个create()
方法被调用,然后crudQuery()
方法被调用。正如我之前提到的,我可以成功地将数据添加到 MySQL 数据库中。不幸的是,当我调用lastInsterID()
方法时,它总是返回 0。
如果您能在我使用 SQL Query 获得最后一个 ID 之前帮助我解决这个问题,我将非常高兴(: