Problème avec "l'id" ds 1 requête SQL(My

Fermé
hoida Messages postés 25 Date d'inscription dimanche 21 novembre 2004 Statut Membre Dernière intervention 24 avril 2010 - 24 févr. 2009 à 01:04
hoida Messages postés 25 Date d'inscription dimanche 21 novembre 2004 Statut Membre Dernière intervention 24 avril 2010 - 24 févr. 2009 à 10:35
Bonjour,
Je suis confronté à un petit problème avec une requête SQL dans MySQL sous PHP. J'ai une table dans une base de donnée MySQL dont la description est donée sur ce lien : https://www.cjoint.com/?cAayHxTah1
J'ai un extrait de mon script php qui traite cette table :

<?php
	mysql_connect("localhost", "usernonroot", "passwdfordb");
	mysql_select_db("dbname_db");
	/* 1) Enregistrement d'un message envoyé :  */
	if(isset($_POST['pseudo']) AND isset($_POST['message']))
	{
		if($_POST['pseudo'] != NULL AND $_POST['message'] != NULL )
		{
		$pseudo = $_POST['pseudo'];
		$message = $_POST['message'];
		$message = nl2br($message);
		mysql_query("INSERT INTO livre_dor VALUES ('', '" . $pseudo . "', '" . $message . "')") ;
		}
	}
?>


Les problèmes que j'ai sont :

Si je garde la requête :
mysql_query("INSERT INTO livre_dor VALUES ('', '" . $pseudo . "', '" . $message . "')");

comme telel, l'exécution de mon script me donne le message d'erreur :
Incorrect integer value: '' for column 'id' at row 1.

Quand je mets :

mysql_query("INSERT INTO livre_dor VALUES ('1', '" . $pseudo . "', '" . $message . "')");
, l'exécution se déroule correctement.

A la deuxième exécution c'est à dire lorsque un message est déjà stocké et en gardant la dernière requête j'obtiens un message d'erreur : Duplicate entry '1' for key 1. Bref les requêtes marchent si je modifie manuellement la valeur de l'id, ce qui n'est guère pratique même pour un débutant :-).

A noter que j'ai un autre problème si je garde ma requête comme telle :
mysql_query("INSERT INTO livre_dor(pseudo, message)  VALUES ('$pseudo', '$message')");

Le message d'erreur étant : Field 'id' doesn't have a default value , alors que le champ id est bein en AUTO_INCREMENT.

Voilà.

Je sollicite l'aide de chacun pour m'expliquer le petit détail que je ne comprends pas pour résoudre ce problème. Comment puis-je contourner ce problème lors de la création de ma table?

Merci pour votre contribution.
A voir également:

3 réponses

IpIpIpIpOne Messages postés 436 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 24 mai 2009 116
24 févr. 2009 à 01:09
Bizarre, bizarre ...
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
24 févr. 2009 à 07:55
Dans le lien que tu as donné pour la structure de ta table, j'ai remarqué que dans extra tu n'as rien alors que si ton champ était bien auto-incrémenté, cela serait spécifié ici.

Donc revérifie si ton champ ID est bien auto-incrémenté ...
0
hoida Messages postés 25 Date d'inscription dimanche 21 novembre 2004 Statut Membre Dernière intervention 24 avril 2010
24 févr. 2009 à 10:35
Merci beaucoup.

C'était effectivement ça le problème. J'avais revu la structure de ma table juste après le Post de ma question. Je me suis rendu compte que le champ id n'était pas en AUTO_INCREMENT.

Merci tout de même pour votre contribution.
0