Erreur SQL syntax

Résolu
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;"

3 réponses

  1. 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 :
    1
    1. Contributeur
      Pas du tout, le seul problème c'est le nom du champ desc. Il suffit de l'échapper :
      $sql = "INSERT INTO tv (id, titre, cat, screen, 'desc', logo) [...]

      Google is your best friend
      VB.NET is good ... VB6 is better !
      0
      1. Contributeur
        (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)
        0
      2. Le fait de l'échapper fait que ça ne devient plus un mot réservé MySQL donc j'ai bien raison.
        Avant de dire "pas du tout" revoit un peu la doc MySQL
        0
      3. Contributeur
        16h32 - mon message
        16h35 - TON message

        "non pas du tout" par rapport au message de l'auteur.
        0
      4. C'est sure qu'il a dis ça a moi :)
        0
    2. Je viens maintenant de le remarqué.
      Merci infiniment pour tous
      0