Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jefferson andre

Pegar o id auto increment apos a inclusao

Recommended Posts

Saudacoes,

Como faco para pegar o numero id ( o campo tambem se chama id ) apos uma inclusao ter ocorrido.

Nao sei se entendi direito mas existe um comando que mostra o ultimo id cadastrado, mas se varias pessoas estiverem cadastrando ao mesmo tempo nao ocorre a chance de pegar um id que nao seja o seu ?

Desculpem se as duvidas sao amadoras mas estou tentando conciliar o maximo que conheco de VFP aqui em PHP.

script atual e funcionando, duvida na ultima linha

$sql = "INSERT INTO empresa (razaosocial, fantasia, cnpj, cpf, insc_estadual, insc_municipal, logotipo, contatos, email, site, endereco, numero, cidade, estado, cep, bairro, complemento, telefone1, telefone2, telefone3, celular, produto, senha, data_contrato, hora_contrato) 
VALUES ('$razaosocial', '$fantasia', '$cnpj', '$cpf', '$inscricao_estadual', '$inscricao_municipal','','$contatos',lower('$email'),'$site','$endereco','$numero','$cidade','$estado','$cep','$bairro','$complemento','$telefone1','$telefone2','$telefone3','$celular','$produto',MD5('$senha'),'$data_contrato','$hora_contrato')";

$retval = $arquivo->query($sql);

if(! $retval ) {
      die('Problemas: Registro não inserido na tabela empresa ' . mysql_error());
   }
   
    echo "Novo registro inserido com sucesso";

//printf ("O novo registro é %d.\n", $retval->insert_id);

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se não me engano por SQL puro tu consegue pegar o valor do auto increment de uma tabela.

SHOW TABLE STATUS FROM interno LIKE 'nomeTabela'

ele vai te retornar várias colunas com várias informações da tabela, dai tu consegue pegar o valor que esta no auto increment.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$arquivo é a conexão?

$id = $arquivo->lastInsertId();


o $id vai receber a id da ultima inserção...

colocar logo após executar a query.

Valeu pela ajuda,

O arquivo é a conexao com a database.

nesta instrucao o campo da tabela id nao deveria estar escrito ? A minha duvida é em relacao a qual campo ele esta pegando da tabela com a instrucao lastinsertid

O novo codigo ficou assim:

$retval = $arquivo->query($sql);

$id = $arquivo->lastInsertId(); // linha 49
echo $id;

e aparece a seguinte mensagem de erro:

Fatal error: Call to undefined method mysqli::lastInsertId() in C:\xampp\htdocs\xcompbrasil\cadastrar.php on line 49

O que pode ser ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome do campo não importa. A função busca o valor gerado pelo campo auto_increment da tabela (que é sempre um só)

Você está usando MySQLi e usou uma função do PDO. Por isso gerou o erro

Veja o que postei no Post #3. Há uma função específica para MySQLi

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.