Se connecter / S'enregistrer
Votre question

PB Insertion dans une table avec un champ id en auto_incrément

Tags :
  • linux
  • Programmation
Dernière réponse : dans Programmation
3 Septembre 2007 10:59:22

Bonjour,

Je viens de transférer l'ensemble du site intranet de ma société, de linux à tout sur Windows. (politique Windows, c'était la seule Linux à avoir résisté).

J'ai donc IIS 6.0 sur Server 2003, php 5.2.3, mysql 5.0.45, et phpmyadmin 2.11.0.

Après avoir fait pas mal de recherches, je pense avoir trouvé le problème, il manque plus que la solution maintenant ! :-p

En ce qui concerne la lecture de la base, et la modification tout se passe bien.
J'ai plusieurs tables, une pour la liste téléphonique, une pour les fournitures, une pour la bibliothèque et enfin 1 autre pour un autre système de répertoire qu'on appelera equitrac.
En ce qui concerne la création d'une nouvelle donnée dans la table equitrac, aucun problème car le champ id est renseigné par l'utilisateur (l'id est un numéro unique, donc je l'ai mis en id directement).

Par contre, pour toutes les autres tables, j'ai un id en int en auto_increment, et dans ce cas ca passe pas, ca passe en manuellement lorsque je renseigne l'id en enlevant l'auto increment mais bon c'est pas une solution.
J'avou être pas mal bloqué et y a pas trop d'infos à ce sujet sur le net.

Si qqun peut m'aider, ca serait vraiment sympa car mes boss me tapent sur les doigts !

Merci d'avance.

Cordialement.

Autres pages sur : insertion table champ auto increment

3 Septembre 2007 11:07:25

Oops !
J'ai oublié de marquer que l'erreur SQL que cela générait :

"Erreur SQL :
Incorrect integer value: '' for column 'id_pdt' at row 1"

Voila !
Merci encore !
3 Septembre 2007 11:46:09

salut, il faut indiquer les colonnes à insérer en omettant la colonne auto_increment.
Contenus similaires
Pas de réponse à votre question ? Demandez !
3 Septembre 2007 11:49:28

Comment ca ?

Tu veux dire (par exemple) au lieu de mettre :

$sql = "INSERT INTO commander (id_commande, id_us, id_pdt, qte_cde, qte_total, date, etat) VALUES ('',$id_us,$id,$qte,'',now(),'a');";

je mets :
$sql = "INSERT INTO commander (id_us, id_pdt, qte_cde, qte_total, date, etat) VALUES (,$id_us,$id,$qte,'',now(),'a');";

?
3 Septembre 2007 12:01:23

oui, en enlevant la 1ere "," aussi.
mais la, je vois que id_pdt n'est pas ton champs en auto_increment, or c'est sur lui que porte l'erreur.
tu dois donc avoir un souci avec la variable $id.

3 Septembre 2007 12:34:54

ca marche comme ca.

il faut enlever l'insertion du champ id (enfin avec tous les champs en auto_increment), car php mysql n'aime pas les insertions vides ' ', il renvoit automatiquement une erreur.

merci pour ta solution coca !
bonne journée à tous !

ps : petite question, c'est du à la version ca ? car avant (et j'ai connu un paquet de version de php phpmyadmin et mysql) je n'avais jamais rencontré ce problème ?
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS