Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
to estudando PDO aos poucos. Consegui entender bastante coisa até então.
To tentando inserir o id do cliente na tabela endereço, ma quero fazer isto
usando o PDO ao invés do MySQL propriamente dito. Na verdade, tem
o mysqlo_insert_id.
Vi o manual do PDO nesse questao, mas confesso que não entendi:
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $dbh->prepare("INSERT INTO test (name, email) VALUES(?,?)");
try {
$dbh->beginTransaction();
$tmt->execute( array('user', 'user@example.com'));
$dbh->commit();
print $dbh->lastInsertId();
} catch(PDOExecption $e) {
$dbh->rollback();
print "Error!: " . $e->getMessage() . "</br>";
} print "Error!: " . $e->getMessage() . "</br>";
}
Neste exemplo, parece que está pegando o id do usuário no momento, mas nada fazendo com este.
Alguém pode me auxiliar ?
abço!!>
2 horas atrás, Gabriel Heming disse:
Qual a sua dúvida até então? Pois o exemplo apenas está mostrando que o método PDO::lastInsertId() irá retornar o último ID inserido na conexão.
Opa! Agradeço por responder, Gabriel.
Então, na verdade, consegui solucionar esse problema 1h após a postagem, mas mesmo assim queria saber como os colegas poderiam resolver isso.
Bom, eu tenho dois "INSERTs". E no segundo pego o id do primeiro com o lastInsertId()
Bom, eu não contava com alguns equívocos do manual PDO:
nesta linha:
$tmt->execute( array('user', 'user@example.com')); perceba que está faltando o "s" na variável $tmt
e nesta linha:
print $dbh->lastInsertId(); na verdade ele fica mais acima e não abaixo onde estava. Pelo menos com esta correções feitas, o código funcionou.
Mas essa seria a melhor prática mesmo em PDO ? Acredito que seja. Como estou começando a estudar o PDO de maneira assídua agora, surgiu, então, essas dúvida.
Qual a sua dúvida até então? Pois o exemplo apenas está mostrando que o método PDO::lastInsertId() irá retornar o último ID inserido na conexão.