Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 3
            [id] => 562217
            [titulo] => Como retornar o id gerado apos um insert com PDO
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-09-13 08:56:18
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 477962
            [status] => A
            [isExample] => 
            [NomeUsuario] => Estevão Dias
            [Apelido] => 
            [Foto] => 477962_20160825192013.png
            [Conteudo] => Oi Samuel,

Você pode usar $this->db->lastInsertId() depois do execute, se a versão do PHP for maior que 5.1. ) )

Como retornar o id gerado apos um insert com PDO

Samuel Lopes
|
MVP
Pontos: 25
    12 set 2016

É possível pegar o id gerado em um insert com PDO. Sem precisar fazer algo com max(id) em select no mysql?
#Código

$sql = "insert into participantes
                (nome, cpf)
                values(:nome, :cpf)";
        $stmt = $this->db->prepare($sql);
        $stmt->bindParam(":nome", $nome, PDO::PARAM_STR);
        $stmt->bindParam(":cpf", $cpf, PDO::PARAM_STR);
        $stmt->execute();

Post mais votado

Estevão Dias
|
MVP
Pontos: 1880
    13 set 2016

Oi Samuel,

Você pode usar $this->db->lastInsertId() depois do execute, se a versão do PHP for maior que 5.1.

Ramon Guimarães
   - 13 set 2016

pow legal, isso ajudou muito!

Vlw Estevão!

Diego Souza
|
MVP
Pontos: 635
    13 set 2016

Muito maneiro! Me ajudou aqui também!

Devmedia
|
MVP
Pontos: 5
    13 set 2016

Muito legal, galera!

Diego Souza
|
MVP
Pontos: 635
    13 set 2016

Resolveu para você Samuel?

Samuel Lopes
|
MVP
Pontos: 25
    13 set 2016

Resolveu muito D+. Muito Obrigado!

Raphael Sobreira
   - 14 set 2016

O ideal não é fazer uma consulta no banco e retornar esse id? Pois em caso de múltiplos usuários utilizando o sistema poderia ocasionar em um id errado. Me corrija por favor se eu estiver errado..

Jetomaz
|
MVP
Pontos: 5
    14 set 2016

Quando temos muitos usuários inserindo dados no banco nem sempre o ultimo registro da tabela vai ser o id com o dados que nos inserimos, desta forma existe uma função no PHP que identifica a nossa conexão com o banco de forma unica e nos retorna o ID que foi gerado após o nosso insert é a mysql_insert_id.

Neste artigo do DevMedia o Rafael Silva explica como funciona.
http://www.devmedia.com.br/funcao-mysql-insert-id-recuperando-id-do-mysql-no-php/22243

Espero ter ajudado

Samuel Lopes
|
MVP
Pontos: 25
    14 set 2016

Mas a função acima não faz o mesmo que mysql_insert_id?
E está função não da para usar com pdo, ou da?