Problème d'insertion base MySQL
Résolu
dlperezok
Messages postés
28
Statut
Membre
-
Chamicki Messages postés 552 Statut Membre -
Chamicki Messages postés 552 Statut Membre -
Bonjour tout le monde,
J'ai un problème en voulant insérer les données récupérées par un formulaire lors de l'inscription et de les insérer dans la base. Voici le code, très simple:
La connexion fonctionne. Les données récupérées par le formulaire sont "bonnes", je l'ai testé avec echo.
Problème, la requete ne fonctionne pas : les données ne s'ajoutent pas dans la base!!!!
Petite précision : le champ "id" est en AUTO_INCREMENT et "activité" n'est pas renseigné lors de l'inscription, il reste blanc..
MERCI d'avance.. Je cale!
DL
J'ai un problème en voulant insérer les données récupérées par un formulaire lors de l'inscription et de les insérer dans la base. Voici le code, très simple:
$dbname = '***';
$hostname = '***';
$username = '***';
$password = '***';
$id_link = mysql_connect($hostname, $username, $password);
$sql = "INSERT INTO utilisateur (id, nom, prenom, date_naissance, date_inscription, ecole, classe, rue, ville, type, newsletter, activite, email, mot_de_passe, question_sec, reponse_sec) VALUES('', '$nom', '$prenom', '$date_naissance', '$moment', '$ecole', '$classe', '$rue', '$ville', '', '$newsletter', '', '$email', '$mot_de_passe', '$question_sec', '$reponse_sec')";
@mysql_db_query ($dbname,$sql,$id_link);
La connexion fonctionne. Les données récupérées par le formulaire sont "bonnes", je l'ai testé avec echo.
Problème, la requete ne fonctionne pas : les données ne s'ajoutent pas dans la base!!!!
Petite précision : le champ "id" est en AUTO_INCREMENT et "activité" n'est pas renseigné lors de l'inscription, il reste blanc..
MERCI d'avance.. Je cale!
DL
A voir également:
- Problème d'insertion base MySQL
- Base de registre - Guide
- Touche insertion clavier - Guide
- Insertion video powerpoint - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
25 réponses
Si l'id est en AUTO_INCREMENT, il n'a rien à faire dans la requête puisqu'il s'incrémente lui même.
Pour trouver ton erreur, tu peux afficher $sql et la lancer directement dans mysql (avec phpmyadmin par exemple) et voir si tu obtiens des erreurs.
Pour trouver ton erreur, tu peux afficher $sql et la lancer directement dans mysql (avec phpmyadmin par exemple) et voir si tu obtiens des erreurs.
l'auto_increment doit pas etre effectif... si t'as ce genre d'erreur.. enfin je crois...
supprimes donc la partie id dans ta requete d'insertion... et vois ce ke ça donne ....
supprimes donc la partie id dans ta requete d'insertion... et vois ce ke ça donne ....
Essaye en changeant les valeurs de connexion à ta base
$serveur="???????";
$utilisateur="??????";
$mot_de_passe="?????";
$nom_de_base="???????";
$serveur="???????";
$utilisateur="??????";
$mot_de_passe="?????";
$nom_de_base="???????";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut Chamicki ; je suppose que c'est ça que tu demandes :
Champ Type Interclassement Attributs Null Défaut Extra Action
Champ Type Interclassement Attributs Null Défaut Extra Action
id int(5) Non aucune auto_increment nom varchar(30) utf8_general_ci Non aucune prenom varchar(30) utf8_general_ci Non aucune date_naissance varchar(10) utf8_general_ci Non aucune date_inscription varchar(10) utf8_general_ci Non aucune ecole varchar(30) utf8_general_ci Non aucune classe varchar(5) utf8_general_ci Non aucune rue varchar(50) utf8_general_ci Non aucune ville varchar(20) utf8_general_ci Non aucune type varchar(2) utf8_general_ci Non aucune newsletter varchar(1) utf8_general_ci Non aucune activite varchar(1) utf8_general_ci Non aucune email varchar(50) utf8_general_ci Non aucune mot_de_passe varchar(15) utf8_general_ci Non aucune question_sec varchar(100) utf8_general_ci Non aucune reponse_sec varchar(100) utf8_general_ci Non aucune
slt.
là ça dit pas si certains champs admettent des valeurs null ou pas...
mais bon... faut ke tu fasses un echo de la requete que tu souhaites executer.. tu verifies que tout est
correct... et si tu veux, tu la recopies , et tu l'executes via ton utilitaire mysql .... si tu veux...
ou t'affiches simplement l'erreur avec ton code...
là ça dit pas si certains champs admettent des valeurs null ou pas...
mais bon... faut ke tu fasses un echo de la requete que tu souhaites executer.. tu verifies que tout est
correct... et si tu veux, tu la recopies , et tu l'executes via ton utilitaire mysql .... si tu veux...
ou t'affiches simplement l'erreur avec ton code...
Voilà : j'ai essayé la requete:
Voici l'erreur: ;
#1366 - Incorrect integer value: '' for column 'id' at row 1
Que dois-je faire???
Merci DL
Voici l'erreur: ;
#1366 - Incorrect integer value: '' for column 'id' at row 1
Que dois-je faire???
Merci DL
Salut Atspinto
Donc la requete fonctionne quand j'enleve Id, comme tu dis. Mais avec le PHP, mystère rien ne s'ajoute.
Je n'ai pas encore essayé avec NULL, chamicki, je te dis koi.
Merci à vous pour vos reponses rapides
Donc la requete fonctionne quand j'enleve Id, comme tu dis. Mais avec le PHP, mystère rien ne s'ajoute.
Je n'ai pas encore essayé avec NULL, chamicki, je te dis koi.
Merci à vous pour vos reponses rapides
chuuttt... dis rien..
c'est pas un mystère php.... si ce champ est auto_increment... y a aucun intérêt à la mentionné dans ta requête, puis de lui donner une valeur NULL... autant l'omettre.... il aura de toute façon sa valeur...
ce ki est sûr.. c'est censé passer... si c'est vraiment auto comme tu l'as dit....
c'est pas un mystère php.... si ce champ est auto_increment... y a aucun intérêt à la mentionné dans ta requête, puis de lui donner une valeur NULL... autant l'omettre.... il aura de toute façon sa valeur...
ce ki est sûr.. c'est censé passer... si c'est vraiment auto comme tu l'as dit....
Voila donc je suppose qu'il faut mettre NULL pour :
- type
- activite
Il ne me laisse pas mettre NULL pour id.
Alors je l'ai fait ... Eh ben nan, toujours rien ! POURTANT, PHP n'indique AUCUNE erreur...
Avez-vous une idée??? Pourtant sur MySql ça marche à merveille..
- type
- activite
Il ne me laisse pas mettre NULL pour id.
Alors je l'ai fait ... Eh ben nan, toujours rien ! POURTANT, PHP n'indique AUCUNE erreur...
Avez-vous une idée??? Pourtant sur MySql ça marche à merveille..
if($id=mysql_connect($serveur,$utilisateur,$mot_de_passe))
{
if(mysql_select_db($nom_de_base))
{
$req = "INSERT INTO utilisateur (id, nom, prenom, date_naissance, date_inscription, ecole, classe, rue, ville, type, newsletter, activite, email, mot_de_passe, question_sec, reponse_sec) VALUES('', '$nom', '$prenom', '$date_naissance', '$moment', '$ecole', '$classe', '$rue', '$ville', '', '$newsletter', '', '$email', '$mot_de_passe', '$question_sec', '$reponse_sec')";
$ok_req = mysql_query($req,$id);
if($ok_req)
{
echo "Envoi ok";
}
else
{
die("Envoi Non ok. Veuillez contacter le responsable du site");
}
}
else
{
die("Echec de connexion a la base. Veuillez contacter le responsable du site");
}
mysql_close($id);
}
else
{
die("Echec de connexion au serveur de base de données. Veuillez contacter le responsable du site");
}
?>
des clés etrangères... mais bon je crois pas ke ce soit le cas, vu ta réaction !!
mais.... j' bug là !!! je Ne pensez-vous pas qu'il faille SELECTIONNER la base??? et je suis ouff !!!
en recuperant l'erreur avec mysql_error() t'as l'info sur l'erreur qui est produite....
mais.... j' bug là !!! je Ne pensez-vous pas qu'il faille SELECTIONNER la base??? et je suis ouff !!!
en recuperant l'erreur avec mysql_error() t'as l'info sur l'erreur qui est produite....