Bonjour
J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql.
J'ai créé une sous-fonction pour exécuter les query. Je voudrais
récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se
fait normalement par la methode last_insert_id. Voici ma fonction:
sub query_exec {
my $database=shift;
my $user=shift;
my $password=shift;
my $query=shift;
my $dbh = DBI->connect("DBI:mysql:$database:localhost", $user,
$password) or die "Ne peut se connecter\n";
my $sth = $dbh->prepare($query);
my $res = $sth->execute;
#$dbh->disconnect;
my $id = $dbh->last_insert_id();
#print "last id: $id\n";
return $sth;
}
J'ai l'erreur: Can't locate object method "last_insert_id" via package
DBI::db
Pourtant, cette methode est bien référence (voir
http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
julien
julien wrote:
Bonjour J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. J'ai créé une sous-fonction pour exécuter les query. Je voudrais récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se fait normalement par la methode last_insert_id.Désolé, je viens de voir que j'ai la version 1.30 alors que last_insert_id a été ajouté dans la 1.38
Julien
julien wrote:
Bonjour
J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql.
J'ai créé une sous-fonction pour exécuter les query. Je voudrais
récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se
fait normalement par la methode last_insert_id.Désolé, je viens de voir que j'ai la version 1.30 alors que
last_insert_id a été ajouté dans la 1.38
Bonjour J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. J'ai créé une sous-fonction pour exécuter les query. Je voudrais récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se fait normalement par la methode last_insert_id.Désolé, je viens de voir que j'ai la version 1.30 alors que last_insert_id a été ajouté dans la 1.38
Julien
julien
julien wrote:
Bonjour J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. J'ai créé une sous-fonction pour exécuter les query. Je voudrais récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se fait normalement par la methode last_insert_id. Voici ma fonction: sub query_exec { my $database=shift; my $user=shift; my $password=shift; my $query=shift;
my $dbh = DBI->connect("DBI:mysql:$database:localhost", $user, $password) or die "Ne peut se connectern";
my $sth = $dbh->prepare($query); my $res = $sth->execute;
#$dbh->disconnect;
my $id = $dbh->last_insert_id(); #print "last id: $idn";
return $sth; }
J'ai l'erreur: Can't locate object method "last_insert_id" via package DBI::db Pourtant, cette methode est bien référence (voir http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
Merci Julien
Après installation de la version 1.38, plus de message d'erreur, mais
$id est vide.
J'ai corrigé l'erreur: #print "last id: $$idn";
Julien
julien wrote:
Bonjour
J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql.
J'ai créé une sous-fonction pour exécuter les query. Je voudrais
récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se
fait normalement par la methode last_insert_id. Voici ma fonction:
sub query_exec {
my $database=shift;
my $user=shift;
my $password=shift;
my $query=shift;
my $dbh = DBI->connect("DBI:mysql:$database:localhost", $user,
$password) or die "Ne peut se connectern";
my $sth = $dbh->prepare($query);
my $res = $sth->execute;
#$dbh->disconnect;
my $id = $dbh->last_insert_id();
#print "last id: $idn";
return $sth;
}
J'ai l'erreur: Can't locate object method "last_insert_id" via package
DBI::db
Pourtant, cette methode est bien référence (voir
http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
Merci
Julien
Après installation de la version 1.38, plus de message d'erreur, mais
Bonjour J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. J'ai créé une sous-fonction pour exécuter les query. Je voudrais récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se fait normalement par la methode last_insert_id. Voici ma fonction: sub query_exec { my $database=shift; my $user=shift; my $password=shift; my $query=shift;
my $dbh = DBI->connect("DBI:mysql:$database:localhost", $user, $password) or die "Ne peut se connectern";
my $sth = $dbh->prepare($query); my $res = $sth->execute;
#$dbh->disconnect;
my $id = $dbh->last_insert_id(); #print "last id: $idn";
return $sth; }
J'ai l'erreur: Can't locate object method "last_insert_id" via package DBI::db Pourtant, cette methode est bien référence (voir http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
Merci Julien
Après installation de la version 1.38, plus de message d'erreur, mais
$id est vide.
J'ai corrigé l'erreur: #print "last id: $$idn";
Julien
Rue des Prairies
julien wrote:
Bonjour J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. J'ai créé une sous-fonction pour exécuter les query. Je voudrais récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se fait normalement par la methode last_insert_id. Voici ma fonction: sub query_exec { my $database=shift; my $user=shift; my $password=shift; my $query=shift;
my $dbh = DBI->connect("DBI:mysql:$database:localhost", $user, $password) or die "Ne peut se connectern";
my $sth = $dbh->prepare($query); my $res = $sth->execute;
#$dbh->disconnect;
my $id = $dbh->last_insert_id(); #print "last id: $idn";
return $sth; }
J'ai l'erreur: Can't locate object method "last_insert_id" via package DBI::db Pourtant, cette methode est bien référence (voir http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
Merci Julien
Bonjour,
Essaie d'exécuter la requête : "SELECT LAST_INSERT_ID()"
Olivier.
julien wrote:
Bonjour
J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql.
J'ai créé une sous-fonction pour exécuter les query. Je voudrais
récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se
fait normalement par la methode last_insert_id. Voici ma fonction:
sub query_exec {
my $database=shift;
my $user=shift;
my $password=shift;
my $query=shift;
my $dbh = DBI->connect("DBI:mysql:$database:localhost", $user,
$password) or die "Ne peut se connectern";
my $sth = $dbh->prepare($query);
my $res = $sth->execute;
#$dbh->disconnect;
my $id = $dbh->last_insert_id();
#print "last id: $idn";
return $sth;
}
J'ai l'erreur: Can't locate object method "last_insert_id" via package
DBI::db
Pourtant, cette methode est bien référence (voir
http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
Merci
Julien
Bonjour,
Essaie d'exécuter la requête :
"SELECT LAST_INSERT_ID()"
Bonjour J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. J'ai créé une sous-fonction pour exécuter les query. Je voudrais récupérer la valeur d'un champs auto_increment lors d'un INSERT. Cela se fait normalement par la methode last_insert_id. Voici ma fonction: sub query_exec { my $database=shift; my $user=shift; my $password=shift; my $query=shift;
my $dbh = DBI->connect("DBI:mysql:$database:localhost", $user, $password) or die "Ne peut se connectern";
my $sth = $dbh->prepare($query); my $res = $sth->execute;
#$dbh->disconnect;
my $id = $dbh->last_insert_id(); #print "last id: $idn";
return $sth; }
J'ai l'erreur: Can't locate object method "last_insert_id" via package DBI::db Pourtant, cette methode est bien référence (voir http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
Merci Julien
Bonjour,
Essaie d'exécuter la requête : "SELECT LAST_INSERT_ID()"
Olivier.
Alain BARBET
J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. ...
J'ai l'erreur: Can't locate object method "last_insert_id" via package DBI::db Pourtant, cette methode est bien référence (voir http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
As-tu vraiment interet d'utiliser les avantages de la compatibilité DBI? Sinon utilise $sth->{'mysql_insertid'};
J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql.
...
J'ai l'erreur: Can't locate object method "last_insert_id" via package
DBI::db
Pourtant, cette methode est bien référence (voir
http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
As-tu vraiment interet d'utiliser les avantages de la compatibilité DBI?
Sinon utilise $sth->{'mysql_insertid'};
J'utilise la librairie dbi (use DBI;) pour manipuler des tables mysql. ...
J'ai l'erreur: Can't locate object method "last_insert_id" via package DBI::db Pourtant, cette methode est bien référence (voir http://search.cpan.org/author/TIMB/DBI-1.38/DBI.pm)
D'où cela peut-il venir?
As-tu vraiment interet d'utiliser les avantages de la compatibilité DBI? Sinon utilise $sth->{'mysql_insertid'};
Julien Sobrier
Rue des Prairies wrote:
Bonjour,
Essaie d'exécuter la requête : "SELECT LAST_INSERT_ID()"
Olivier.
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Rue des Prairies wrote:
Bonjour,
Essaie d'exécuter la requête :
"SELECT LAST_INSERT_ID()"
Olivier.
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il
peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le
bon id. Je pourrai locker la table, mais je ralentirai considerablement
mon programme.
Essaie d'exécuter la requête : "SELECT LAST_INSERT_ID()"
Olivier.
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Rue des Prairies
Julien Sobrier wrote:
Rue des Prairies wrote:
Bonjour,
Essaie d'exécuter la requête : "SELECT LAST_INSERT_ID()"
Olivier.
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Julien Sobrier wrote:
Rue des Prairies wrote:
Bonjour,
Essaie d'exécuter la requête :
"SELECT LAST_INSERT_ID()"
Olivier.
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il
peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le
bon id. Je pourrai locker la table, mais je ralentirai considerablement
mon programme.
Essaie d'exécuter la requête : "SELECT LAST_INSERT_ID()"
Olivier.
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Julien Sobrier
Rue des Prairies wrote:
Julien Sobrier wrote:
Bonjour Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Bonjour
Meme si d'autres programmes manipulent cette base donnees en parallele?
Julien
Rue des Prairies wrote:
Julien Sobrier wrote:
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()",
il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir
le bon id. Je pourrai locker la table, mais je ralentirai
considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Bonjour
Meme si d'autres programmes manipulent cette base donnees en parallele?
Bonjour Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Bonjour
Meme si d'autres programmes manipulent cette base donnees en parallele?
Julien
Rue des Prairies
Julien Sobrier wrote:
Rue des Prairies wrote:
Julien Sobrier wrote:
Bonjour Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Bonjour
Meme si d'autres programmes manipulent cette base donnees en parallele?
Julien
Bonjour,
Oui, cette fonction est valable par connexion.
Olivier.
Julien Sobrier wrote:
Rue des Prairies wrote:
Julien Sobrier wrote:
Bonjour
Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()",
il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir
le bon id. Je pourrai locker la table, mais je ralentirai
considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Bonjour
Meme si d'autres programmes manipulent cette base donnees en parallele?
Bonjour Le probleme, c'est qu'entre ma requete et "SELECT LAST_INSERT_ID()", il peut y avoir eu d'autres requetes, donc je ne suis pas sur d'avoir le bon id. Je pourrai locker la table, mais je ralentirai considerablement mon programme.
Julien
Bonjour,
Non, pas si tu l'exécutes juste après l'insert.
Olivier.
Bonjour
Meme si d'autres programmes manipulent cette base donnees en parallele?