Erreur SQL syntax
Résolu
nizar_b15
Messages postés
26
Statut
Membre
-
nizar_b15 Messages postés 26 Statut Membre -
nizar_b15 Messages postés 26 Statut Membre -
Bonjour,
Je suis en train de concevoir l'admind mon site perso. J'un un probleme avec la bdd mysql qui me repond
"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 'desc, logo) VALUES (NULL, 'chaine1', 'Cat1', 'code 1', 'description' at line 1"
Je ne sais pas comment fixer mon probleme. Ci desous le code de la page php :
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "direct_tv" ) ;
//récupération des valeurs des champs:
//nom:
$titre = $_POST["titre"] ;
//prenom:
$cat = $_POST["cat"] ;
//adresse:
$screen = $_POST["screen"] ;
//code postal:
$desc = $_POST["desc"] ;
//numéro de téléphone:
$logo = $_POST["logo"] ;
//création de la requête SQL:
$sql = "INSERT INTO tv (id, titre, cat, screen, desc, logo)
VALUES (NULL, '$titre', '$cat', '$screen', '$desc', '$logo') " ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
voici ma table mysql tv :
--
-- MySQL 5.5.8
-- Sun, 11 Sep 2011 11:53:51 +0000
--
CREATE TABLE 'tv' (
'id' int(20) not null auto_increment,
'titre' varchar(255) not null,
'screen' longtext not null,
'desc' varchar(100) not null,
'cat' varchar(100) not null,
'logo' varchar(200) not null,
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;
-- [Table 'tv' is empty]
Je pense que l'erroeur est relier à l'insertion du id et en relation avec
"ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;"
Je suis en train de concevoir l'admind mon site perso. J'un un probleme avec la bdd mysql qui me repond
"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 'desc, logo) VALUES (NULL, 'chaine1', 'Cat1', 'code 1', 'description' at line 1"
Je ne sais pas comment fixer mon probleme. Ci desous le code de la page php :
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "direct_tv" ) ;
//récupération des valeurs des champs:
//nom:
$titre = $_POST["titre"] ;
//prenom:
$cat = $_POST["cat"] ;
//adresse:
$screen = $_POST["screen"] ;
//code postal:
$desc = $_POST["desc"] ;
//numéro de téléphone:
$logo = $_POST["logo"] ;
//création de la requête SQL:
$sql = "INSERT INTO tv (id, titre, cat, screen, desc, logo)
VALUES (NULL, '$titre', '$cat', '$screen', '$desc', '$logo') " ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
voici ma table mysql tv :
--
-- MySQL 5.5.8
-- Sun, 11 Sep 2011 11:53:51 +0000
--
CREATE TABLE 'tv' (
'id' int(20) not null auto_increment,
'titre' varchar(255) not null,
'screen' longtext not null,
'desc' varchar(100) not null,
'cat' varchar(100) not null,
'logo' varchar(200) not null,
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;
-- [Table 'tv' is empty]
Je pense que l'erroeur est relier à l'insertion du id et en relation avec
"ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;"
A voir également:
- Erreur SQL syntax
- Logiciel sql - Télécharger - Bases de données
- Erreur 0x80070570 ✓ - Forum Windows 10
- Erreur s3 bbox - Forum Bbox Bouygues
- Erreur 4101 - Forum Carte graphique
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
3 réponses
Bonjour,
Je pense que le problème vient du fait que tu utilises un mot réservé MySQL (desc) comme nom de champ dans ta requête SQL :
Je pense que le problème vient du fait que tu utilises un mot réservé MySQL (desc) comme nom de champ dans ta requête SQL :
Pas du tout, le seul problème c'est le nom du champ desc. Il suffit de l'échapper :
Google is your best friend
VB.NET is good ... VB6 is better !
$sql = "INSERT INTO tv (id, titre, cat, screen, 'desc', logo) [...]
Google is your best friend
VB.NET is good ... VB6 is better !
(ce ne sont pas des guillemets simples mais des accents sans rien en dessous. Apparemment ça ne passe pas sur CCM - https://pastebin.com/MZZVQbx3)