Ir para conteúdo
Fórum Script Brasil
  • 0

Função LastInsertId() retorna 0


HarryJ

Pergunta

Estou tentando retornar o último ID inserido, mas a função retorna 0, mas não sei o motivo, pois o registro é inserido, apenas não retorna o registro certo.

Me falaram que o erro pode ser no banco, pois no PHP está inserindo. Quando retorno o ID, ele já vem com 0.

Tabela no banco

CREATE TABLE FardoLamina (
idFardoLamina BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
possui_idFardoLamina BIGINT UNSIGNED,
idMaquina INT,
idSaida BIGINT UNSIGNED,
);

<?php
try{

                $inserir = new Inserir();
                $inserir->Conectar();
                $inserir->conexao->beginTransaction();
                //$inserir->InserirRegistro('fardoLamina', $dados);
                $inserir->InserirFuncao('fardoLamina', "'I', 0, $quantidade, NULL, $_POST[largura], $_POST[comprimento], $_POST[espessura], $_POST[m3], NULL, NULL, '$_POST[tipo]', '$quali', NULL, NULL, NULL, NULL, $_POST[id], $_POST[localEstoque], $_POST[idLote], 's'");

                $inserir->conexao->commit();
                $ultimoID = $inserir->conexao->lastInsertId();
                echo $ultimoID;
                $inserir->Desconectar();
                        $dados = array('possui_idFardoLamina' => $ultimoID);
                        $alterar = new Editar();
                        $alterar->Conectar();
                        for ($i=0;$i<count($select);$i++)
                        {
                            $alterar->EditarDados('fardoLamina', $dados, 'idFardoLamina', $select[$i]);
                        }
                        $alterar->Desconectar();
                $mensagens = $inserir->getFormMsg();
                foreach ($mensagens as $mensagem) {
                    $msg .= utf8_encode($mensagem);
                }
            }catch (Exception $erro){
                $inserir->conexao->rollback();
                $inserir->Desconectar();
                $msg = "Erro: {$erro->getMessage()}";
            }
    ?>

Obrigado.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Normalmente instruções de banco eu resolvo com o banco e não com a linguagem de programação

Tente o uso da função LAST_INSERT_ID do Mysql através de um select logo após o comit

select last_insert_id() from minhatabela;

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...