db_query('select LAST_INSERT_ID()') ne donne pas résultat escompté

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Juste après la création d'un contenu, dans une fonction hook_form_alter, je fais :

$result = db_query('select LAST_INSERT_ID()');
var_dump($result->fetchColumn(0));

Cela m'affiche alors "string(1) "0"" alors que dans la table 'node' a bien été créé un enregistrement dont le champ 'nid' contient '7'.

Quelq'un aurait une idée sur la manière correcte de procéder?

Merci d'avance.

Forum : 
Version de Drupal : 

Bonjour,
Il y a une fonction pour çà :
db_last_insert_id

EDIT :Autant pour moi c'est en drupal 6

EDIT 2 : Attention l'utilisation de LAST_INSERT_ID() est assez complexe voir
ici
Le dernier ID généré est conservé par le serveur pour chaque connexion.
Cependant si tu es sur la même connexion essai plûtot SELECT LAST_INSERT_ID() FROM node
Sinon il se pourrait que l'id retourné si cela fonctionne soit celui d'un watchdog ou autre.
Cordialement,
Aya

Bonjour,

Merci beauoup pour ta réponse.

Malheureusement, ça ne fonctionne pas. Je viens d'essayer avec ceci :

$result = db_query('SELECT LAST_INSERT_ID() FROM sequences');
var_dump($result->fetchColumn(0));

Malheureusement, bien que la clé primaire de cette table ('value') soit autoincrémentée lors de la création d'un nouvel utilisateur, cela m'affiche 'string(1) "0"' après la création d'un nouvel utilisateur.

Je patauge solidement...