Aller au contenu

LAST_INSERT_ID = 0 ?


Commmint

Sujets conseillés

Bonjour à tous,

Voilà j'ai un petit soucis MySQL tout bête :

Sur une requête INSERT, je souhaite remplir un champ INT de base avec l'ID du nouvel enregistrement créé. Visiblement, le LAST_INSERT_ID() de MySQL retourne 0. j'ai tenté aussi un max(ID) qui ne s'applique pas dans ce contexte.

Je souhaite tout faire en une requète...

J'ai un champ ID index autoincrémenté et une clé primaire sur un autre champ.

ou se trouve l'erreur ?

merci pour vos réponses ^_^

//

voilà la requete :

mysql_query("INSERT INTO sel_tribune SET auteur=$auteur, titre='$titre', message='$message', date=$date, reponse=LAST_INSERT_ID()")

Modifié par Commmint
Lien vers le commentaire
Partager sur d’autres sites

Pour php, il y a une fonction pour connaitre l'ID ... APRES la requete

mysql_insert_id

ton code ressemblerais à :

mysql_query("INSERT INTO sel_tribune SET auteur=$auteur, titre='$titre')
$monid = mysql_insert_id();

ensuite, pour faire cela directement en SQL, il faut mettre ton champs "autoincrement' et ne pas y inserer de valeur.

donc cela fera :

mysql_query("INSERT INTO sel_tribune SET auteur=$auteur, titre='$titre', message='$message', date=$date, reponse=''")

Lien vers le commentaire
Partager sur d’autres sites

Génial effectivement c'est INSERT_ID qu'il me faut !!!

je teste tout de suite.

Merci Vincent

Lien vers le commentaire
Partager sur d’autres sites

Oups désolé, mais je souhaite réaliser le remplissage du champ avec l'idée de l'INSERT en cours, et ne pas faire deux requètes successives.

Donc est ce que je peux connaitre l'ID COURANT de la requète ?

Lien vers le commentaire
Partager sur d’autres sites

Oups désolé, mais je souhaite réaliser le remplissage du champ avec l'idée de l'INSERT en cours, et ne pas faire deux requètes successives.

Donc est ce que je peux connaitre l'ID COURANT de la requète ?

<{POST_SNAPBACK}>

c'est donc la 2e solution a utiliser :

tu laisses le champs ID vide dans ta requete, il faut qu'il soit autoincrement dans la base et SQL fera son travail comme il faut.

Si tu as besoin de connaitre l'id, alors ensuite tu utilise la fonction mysql_insert_id pour savoir quel ID SQL a attribué a ton enregistrement.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...