Jump to content
Fórum Script Brasil
  • 0

Função LastInsertId() retorna 0


HarryJ
 Share

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647k
×
×
  • Create New...