Probleme insert dans une page php
Résolu
guiguitariste
-
Beautybeast -
Beautybeast -
Bonjour,
Je débute en php et j'ai un problème lors de l'exécution d'un insert:
$sql = mysql_query("INSERT into nom values('', $Nom, $Email)");
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
J'obtiens ce message-ci:
Erreur SQL !
Query was empty
Quelqu'un pourrait-il m'aider à résoudre ce problème qui me ronge la vie depuis deux jours?
Je débute en php et j'ai un problème lors de l'exécution d'un insert:
$sql = mysql_query("INSERT into nom values('', $Nom, $Email)");
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
J'obtiens ce message-ci:
Erreur SQL !
Query was empty
Quelqu'un pourrait-il m'aider à résoudre ce problème qui me ronge la vie depuis deux jours?
A voir également:
- Probleme insert dans une page php
- Supprimer une page dans word - Guide
- Touche insert - Guide
- Imprimer tableau excel sur une page - Guide
- Créer une page facebook - Guide
- Comment traduire une page internet - Guide
3 réponses
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 :)
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')";
Merci a toi redvan et a la comunauté des programmeurs.