我遇到了一个问题。我的框架在 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 之前帮助我解决这个问题,我将非常高兴(: