J'ai une table image_tb, qui a 3 champs, id,images,link
(id est auto_increment auto), c'est mon code d'insertion:insert php mysql (max (id) +1)
mysql_query("
insert into image_tb
(images,link)
select
'".(max(id)+1).".jpeg','".$link."'
from image_tb
");
il retourne:
Warning: max(): When only one parameter is given, it must be an array
comment modifier? Merci.
cela vous coûtera 2 requêtes. –
Je pense que php a une fonction qui retourne le dernier identifiant d'insertion. – Sentencio
@Sentencio: mysql s'assure que c'est le dernier id de la connexion courante, donc il n'y aura pas de problèmes si vous mettez cette instruction juste après la requête d'insertion. Pas de soucis sur les autres processus faisant des insertions. Pas besoin d'envelopper dans une transaction. Le manuel mysql dit: "L'ID généré est conservé dans le serveur par connexion, ce qui signifie que la valeur renvoyée par la fonction à un client donné est la première valeur AUTO_INCREMENT générée pour la déclaration la plus récente affectant une colonne AUTO_INCREMENT par ce client.C'est la raison pour laquelle vous ne devriez pas utiliser sélectionnez MAX (ID) – msk