Error in SQL syntax

Résolu/Fermé
Vad - 24 sept. 2008 à 12:46
 Vad - 25 sept. 2008 à 13:00
Bonjour,
voila j'utilise WAMP et pour apprendre le php, je code des pages pour interagir avec la base de données

J'ai donc fait un formulaire qui me renvoie des variables que j'envoie ensuite dans une requête SQL pour ajouter une ligne a ma base de données.
Seulement voila, j'ai une petite erreur :
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1"

voici ma requête :
$connection = mysql_connect('localhost', '*****', '*****') or die ("Connection to SQL impossible");
$db = mysql_select_db('*****', $connection) or die ("Impossible to connect to Database");
$result = mysql_query("INSERT INTO `itec it inventory` VALUES (NULL, '$Type', '$Name', '$Serial', '$FA_Number', '$Country', '$Localisation', '$Responsable_Person', '$Purchasing_Date', '$Brand_Name', '$Model', '$Description', '$Support_Contract', '$Starting_Date', '$Expiration_Date', '$Support_Level');") or die(mysql_error());
$r = mysql_query($result) or die (mysql_error());
echo 'Vous avez enregistre'.mysql_num_rows($r).'nouvelle donnee!';
$connection = mysql_close();

si quelqu'un pouvait me donner un coup de main pour comprendre mon erreur, merci bien

Vad

3 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
24 sept. 2008 à 13:03
Salut,
Vérifie qu'aucune de tes variable ne contient de guillemets, passent les toutes à travers la moulinette de mysql_real_escape_string (cf https://www.php.net/manual/fr/function.mysql-real-escape-string.php ).

Par ailleurs, l'utilisation des guillemets double pour les chaînes de caractères est fortement déconseillée en PHP.
Il vaut mieux utiliser les guillemets simples, ta requête deviens :
$result = mysql_query('INSERT INTO `itec it inventory` VALUES (NULL, "'.$Type.'", "'.$Name.'", "'.$Serial.'", '.$FA_Number.'", "'.$Country.'", "'.$Localisation.'", "'.$Responsable_Person.'", "'.$Purchasing_Date.'", "'.$Brand_Name.'", "'.$Model.'", "'.$Description.'", "'.$Support_Contract.'", "'.$Starting_Date.'", "'.$Expiration_Date.'", "'.$Support_Level.'")') or die(mysql_error());
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
24 sept. 2008 à 13:09
Bonjour,

Je pense que ton problème vient du fait que ta variable $result contient le résultat de ton INSERT (c-à-dire le nombre d'enregistrements) ce qui expliquerai le message d'erreur car, en effet tu fais d'abord
$result = mysql_query(......)
et la ligne suivante tu fais
$r = mysql_query($result)

A plus
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
24 sept. 2008 à 13:27
En effet c'est plutôt mysql_num_fields qu'il faut utiliser ici.
0
merci de vos reponses, sa marche parfaitement

Vad
0