Probleme insert dans une page php
Résolu/Fermé
A voir également:
- Probleme insert dans une page php
- Supprimer une page word - Guide
- Touche insert - Guide
- Imprimer tableau excel sur une page - Guide
- Créer une page facebook - Guide
- Comment traduire une page - Guide
3 réponses
ridvan
Messages postés
14
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
10 octobre 2012
8
12 juin 2008 à 16:49
12 juin 2008 à 16:49
1 - T'as deux fois mysql_query
2 - Tu nas pas écrit tes variables pour donner des valeurs d'abord.
3 - "," laquelle se trouve avant $Nom générait d'une faute
Essaie ceci:
$sql = "INSERT INTO nom (Nom, Email) VALUES ('$Nom', '$Email')";
mysql_query ($query) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
2 - Tu nas pas écrit tes variables pour donner des valeurs d'abord.
3 - "," laquelle se trouve avant $Nom générait d'une faute
Essaie ceci:
$sql = "INSERT INTO nom (Nom, Email) VALUES ('$Nom', '$Email')";
mysql_query ($query) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Oui tu peu utiliser le NULL comme valeur de ta "cle" auto_increment
OU
Tu peu laisser MySQL le gérer lui-même en n'impliquant pas le champ "Cle" dans la requête
exemple :
$sql = "INSERT INTO nom (Cle, NomCli, Email) VALUES ( NULL, '$Nom', '$Email')";
OU
$sql = "INSERT INTO nom (NomCli, Email) VALUES ('$Nom', '$Email')";
En passant, c'est une très bonne habitude d'utiliser les Simple Quotes (') pour encapsuler tes données a insérer.
D'autre bonnes habitudes a prendre :
- Utiliser la function mysql_real_escape_string() de PHP pour éviter les problème d'injection de SQL.
- Inclure un ";" a la fin de ta requête aussi.
exemple :
$sql = "INSERT INTO nom (Cle, NomCli, Email) VALUES ( NULL, '".mysql_real_escape_string($Nom)."', '".mysql_real_escape_string($Email)."');";
OU
Tu peu laisser MySQL le gérer lui-même en n'impliquant pas le champ "Cle" dans la requête
exemple :
$sql = "INSERT INTO nom (Cle, NomCli, Email) VALUES ( NULL, '$Nom', '$Email')";
OU
$sql = "INSERT INTO nom (NomCli, Email) VALUES ('$Nom', '$Email')";
En passant, c'est une très bonne habitude d'utiliser les Simple Quotes (') pour encapsuler tes données a insérer.
D'autre bonnes habitudes a prendre :
- Utiliser la function mysql_real_escape_string() de PHP pour éviter les problème d'injection de SQL.
- Inclure un ";" a la fin de ta requête aussi.
exemple :
$sql = "INSERT INTO nom (Cle, NomCli, Email) VALUES ( NULL, '".mysql_real_escape_string($Nom)."', '".mysql_real_escape_string($Email)."');";
Ohh.. j'oubliais..
Mettre les nom de champs et tables entre ` (L'apostrophe tout croche)
Exemple de une de mes requete...
mysql_query("INSERT into `admin_users` (`Usr`,`Pwd`,`Note`,`Active`,`Nickname`,`Email`) values ('".mysql_real_escape_string($Username)."','".mysql_real_escape_string($Password)."','".mysql_real_escape_string($Note)."','".mysql_real_escape_string($Active)."','".mysql_real_escape_string($Nickname)."','".mysql_real_escape_string($Email)."');");
en esperant que un jour ca va aider quelqu'un :)
Mettre les nom de champs et tables entre ` (L'apostrophe tout croche)
Exemple de une de mes requete...
mysql_query("INSERT into `admin_users` (`Usr`,`Pwd`,`Note`,`Active`,`Nickname`,`Email`) values ('".mysql_real_escape_string($Username)."','".mysql_real_escape_string($Password)."','".mysql_real_escape_string($Note)."','".mysql_real_escape_string($Active)."','".mysql_real_escape_string($Nickname)."','".mysql_real_escape_string($Email)."');");
en esperant que un jour ca va aider quelqu'un :)
12 juin 2008 à 17:12
En fait dans ma table j'ai une clé qui est auto_increment et lorsque je fais mon insert j'obtiens ceci:
Erreur SQL !INSERT INTO nom (Cle, NomCli, Email) VALUES ( '', 'dgs', 'dsg')
Incorrect integer value: '' for column 'Cle' at row 1
dans mon code j'ai ceci:
$sql = "INSERT INTO nom (Cle, NomCli, Email) VALUES ( '', '$Nom', '$Email')";
12 juin 2008 à 17:20
Merci a toi redvan et a la comunauté des programmeurs.