[RESOLVIDO] Como recuperar id apos inserção

Gente estou sofrendo para recuperar um ad gravado
estou usando em um botao do formulario

$sql = "INSERT INTO titulos (titid,titclifor, titmov, titespecie, tittipo, titbanco, titdatamovimento, titdatadocadastro, titdatavecto, titvalor, titdescricao, titgru_id, titflag) VALUES ('00000000000','$c01','0','1', '1', '$c08','$c12','$hoje', '$c15', '$c14', '$c22','10','mes')"; 

sc_exec_sql($sql);

sc_lookup(ds, “SELECT LAST_INSERT_ID()”);

Aplicação;
Navegação;
Marque - Retornar após Inclusão

OnAfterInsert (corrigindo meu erro)
Recupera o {campo_id}

no php:

<?php
$sql = "SHOW TABLE STATUS LIKE 'nometabela'";
$resultado = mysql_query($sql);

$linha = mysql_fetch_array($resultado);
$next = $linha['Auto_increment'];
?>

ou use a função: MYSQL_INSERT_ID

Você fez tudo certo:

$sql = "INSERT INTO titulos (titid,titclifor, titmov, titespecie, tittipo, titbanco, titdatamovimento, titdatadocadastro, titdatavecto, titvalor, titdescricao, titgru_id, titflag) VALUES ('00000000000','$c01','0','1', '1', '$c08','$c12','$hoje', '$c15', '$c14', '$c22','10','mes')"; 
sc_exec_sql($sql);
sc_lookup(ds, “SELECT LAST_INSERT_ID()”);
echo "ID INSERIDO {$ds[0][0]}";

Estou usando a versão 9.4.005 e estou usando a inserção através do botão em código PHP.

echo “ID INSERIDO {$ds[0][0]}”;
Retorno vazio.

Ao invés do LAST_INSERT_ID() tenta assim:
SELECT MAX(tiltid) FROM titulos

image

Tem que usar é o LAST_INSERT_ID() mesmo porque ele trava individualmente a sessão interna
que fez a inclusão no banco retornando o último ID corretamente para o usuário que
fez a inclusão daquele registro, se usar MAX(ID) e 10 usuários incluíram ao mesmo tempo
ele vai trazer o maior número para todos independente de quem fez a inclusão.

4 Curtidas

Fiz teste no phpMyAdmin ai funciona mas no scriptcase não ja não sei onde pesquisar para que isto funciona.
.

aqui funcionou,

como vou precisar de algo assim, fiz 3 testes antes de implementar

em um FORM no onAfterInsert, basta pegar o {id}

botão php e em uma blank, usado o mesmo código (baseado no que passou):

$sql = "INSERT INTO teste (codigo, data1, data2, texto, observacao,valor1,valor2) VALUES ('1', now(),now(), 'texto', 'observacao','10.00','20,00')"; 
sc_exec_sql($sql);

sc_lookup(tstid, "SELECT LAST_INSERT_ID()");
echo "ID INSERIDO {$tstid[0][0]}";

***Usando conexão MySql PDO

1 Curtida

Em aplicação de formulário, na onAfterInsert eu utilizo o próprio campo {id} no código e funciona certinho.

Resolvido.
Obrigado era minha versão que estava baleada troquei funcionou.