J'essaie d'exécuter une requête sur ma table pour créer une ligne et obtenir son numéro 'id' incrémenté automatiquement pour être ensuite attaché aux enregistrements associés. J'envoie la requête en utilisant php et je l'ai testé sur mon hôte local WAMP et mon hôte distant. Ceci est mon code:requête multiple non exécutée
$myemail = someEmailAddress
$q = mysqli_query($cxn,"INSERT INTO `purchases`(`id`, `email`)
VALUES (NULL , '$myemail');
SELECT LAST_INSERT_ID();") or die(mysql_error());
Si je prends ce bit:
SELECT LAST_INSERT_ID();
La requête fonctionne bien et je reçois un nouveau record brillant avec un correctement incrémentée « id » auto mais le remettre dans et rien ne se passe du tout. Incidemment, en exécutant la même requête dans la fenêtre SQL de phpMyAdmin pour mon serveur WAMP, j'obtiens le résultat que je cherchais.
Je pense que le problème est dans l'exécution de plusieurs requêtes dans la même chaîne. Pour autant que je puisse voir la syntaxe est correcte, est-ce un problème avec le serveur que je suis en train de tourner? Laissez-moi vous expliquer ce que je veux accomplir.
Je fais des affaires pour moi et je veux que les clients puissent faire des réservations en ligne. Je souhaite regrouper des événements individuels qu'un client peut vouloir réserver en même temps, en une seule facture. J'ai un tableau ($ _SESSION [panier]) qui collecte les données dans la session et au moment de la réservation je veux créer un nouvel enregistrement dans ma table 'achats' qui a une clé primaire d'incrément auto 'id', quand c'est J'ai besoin de connaître la valeur 'id' pour ce nouvel enregistrement afin que je puisse lier l'événement qu'ils réservent à l'achat via une troisième table avec une relation many-to-many.
Merci pour votre aide.
pourquoi ne pas le faire une deuxième requête pour obtenir le dernier identifiant d'insertion au lieu de essayer de pousser tout cela en 1? – jefffan24