PDO lastInsertId ()всегда возвращает 0

Я столкнулся с проблемой. Моя структура отлично работала с PHP 5.3.0. Я обновил свою версию PHP до PHP 5.4.x, и у меня появилось несколько проблем с некоторыми частями моего фреймворка.

После обновления версии PHP PDO lastInsterId()всегда возвращает 0.

У меня есть поле автоматического приращения -с именем id. Он добавляет данные в базу данных без каких-либо проблем.

По какой-то причине я продолжаю получать 0 в качестве идентификатора последней вставки.

Вот мой код;

база данныхobjects.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-запроса(:

15
задан Revenant 2 August 2012 в 11:51
поделиться