Как получить последний вставленный идентификатор из класса в перенаправление

Я использую следующий код для вставки данных в mysql с помощью php pdo (из класса):

$this->pdo = $this->connectMySql();
        if(isset($params['content'])){
            $query = 'INSERT INTO pages SET menu_name = :menu_name, position = :position, visible = :visible, content = :content, pagetype = :pagetype';
        }else{
            $query = 'INSERT INTO pages SET menu_name = :menu_name, position = :position, visible = :visible, pagetype = :pagetype';
        }
        $stmt = $this->pdo->prepare($query);
        $stmt->bindParam(':menu_name',$params['menu_name'], PDO::PARAM_STR);  // PDO::PARAM_STR is used for treating 
        $stmt->bindParam(':position',$params['position'], PDO::PARAM_INT);
        $stmt->bindParam(':visible',$params['visible'], PDO::PARAM_INT);
        if(isset($params['content'])){
            $stmt->bindParam(':content',$params['content'], PDO::PARAM_STR);
        }else{}
        $stmt->bindParam(':pagetype',$params['pagetype'], PDO::PARAM_STR);
        if(!$stmt->execute()){
            return false;
        }
        $lastid = $this->pdo->lastInsertId();
        $this->pdo = null;
        return $lastid;

Он находится внутри блока try catch. Вставка работает, но я хотел бы вставить последний идентификатор, я использовал следующее (вы можете увидеть его часть здесь), но на странице index.php я, кажется, не получаю идентификатор:

$params = array(
            'menu_name' => $_POST['menu_name'],
            'position' => $_POST['position'],
            'visible' => $_POST['visible'],
            'content' => $_POST['editor1'],
            'pagetype' => $_POST['pagetype']
            );
if ($pages->insertPage($params)) {
    $html->redirect_to("content.php?pageid=" . $pages->lastid);
}else{
    $message = "Aanmaken van pagina is niet gelukt!";
}

Любая помощь будет оценена по достоинству.

Я не понимаю, почему это дубликат. Я видел этот другой вопрос, но он касается сохранения lastinsertid в базе данных (возможно, даже не внутри класса).
На моей главной странице (index.php) я вызываю функцию вставки (из класса), и при вставке она должна возвращать идентификатор на главную страницу. Я даже пытался изменить код (чтобы получить и вернуть lastinsertid) из другого сообщения, но все, что я получаю, это пустое значение.


person PDOProgrammer    schedule 26.02.2013    source источник
comment
@Naveen Программист, как видите, я использую pdo, я не хочу использовать mysql_insert_id.   -  person PDOProgrammer    schedule 27.02.2013


Ответы (1)


вы вызываете lastid как метод, на index.php: 9 я думаю, $pages->lastid будет лучше

person Leo Libre    schedule 26.02.2013
comment
как указано выше (мое редактирование), я не думаю, что это дубликат, потому что он немного отличается от другого вопроса. Поскольку другой вопрос касается сохранения lastinsertid в базе данных, я хочу вернуть идентификатор в index.php в заголовке в качестве перенаправления. - person PDOProgrammer; 27.02.2013