Parse error requete sql
Breub62 Messages postés 3452 Statut Membre -
j'ai un gros soucis, je dois être aveugle mais cela fait 2 h que je suis sur une parse error sur cette ligne....et je trouve pas... Le nombre de valeurs est bon, la synthaxe me semble bonne...
Z'avez une idée s'il vous plait ?
$sql = 'INSERT INTO basechoisie VALUES ("","","'.nl2br(htmlentities($_POST['nom']).'", "'.nl2br(htmlentities($_POST['description']).'", "'.nl2br(htmlentities($_POST['contact']).'", "'.nl2br(htmlentities($_POST['entrainement']).'", "'.nl2br(htmlentities($_POST['palmares']).'","" )';
8 réponses
Problème rencontré lors d'un INSERT en PHP avec une parse error, dû à une chaîne de valeurs mal assemblée et à une syntaxe contestable dans la requête SQL. Des échanges soulignent des incohérences entre $_POST et les noms d'inputs, des soucis d'échappement et de concaténation, et la nécessité de vérifier le nombre de valeurs par rapport aux colonnes. Plusieurs réponses évoquent aussi la vérification que les champs du formulaire soient nommés exactement comme les clés $_POST, et suggèrent des solutions comme préparer les requêtes plutôt que d'assembler manuellement. En cas de persistante, la discussion aborde aussi l'éventualité d'un décalage entre l'update et l'insert, et signale que des données postées peuvent ne pas modifier la base sans requête correctement exécutée.
-
Tu dois bien avoir un parse error expected ou unexpected quelque chose non??
-
Bonjour,
A chaque fois que vous utilisez nl2br() vous ne fermez pas la parenthèse
essayez :$sql = 'INSERT INTO basechoisie VALUES ("","","'.nl2br(htmlentities($_POST['nom'])).'", "'.nl2br(htmlentities($_POST['description'])).'", "'.nl2br(htmlentities($_POST['contact'])).'", "'.nl2br(htmlentities($_POST['entrainement'])).'", "'.nl2br(htmlentities($_POST['palmares'])).'","" )';
-
Oula ! c'est pire mdr....(ligne 57 étant la ligne en question...ppff...
Notice: Undefined index: nom in C:\wamp\www\pec\insert_section.php on line 57 Notice: Undefined index: description in C:\wamp\www\pec\insert_section.php on line 57 Notice: Undefined index: contact in C:\wamp\www\pec\insert_section.php on line 57 Notice: Undefined index: entrainement in C:\wamp\www\pec\insert_section.php on line 57 Notice: Undefined index: palmares in C:\wamp\www\pec\insert_section.php on line 57 Erreur SQL !INSERT INTO sections_pec VALUES ("","","", "", "", "", "","" ) Duplicate entry '' for key 'PRIMARY'
Ma base c'est
CREATE TABLE IF NOT EXISTS 'sections_pec' ( 'club' varchar(100) NOT NULL, 'logo' varchar(150) NOT NULL, 'nom' varchar(150) NOT NULL, 'description' varchar(300) NOT NULL, 'contact' varchar(350) NOT NULL, 'entrainement' varchar(350) NOT NULL, 'palmares' varchar(350) NOT NULL, 'img' varchar(350) NOT NULL, PRIMARY KEY ('club') ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -
Oula normal les undefined index j'suis bete.....
Par contre pour la clef primaire pas normal -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
C'est parce que tu dois déjà avoir un enregistrement vide...
-
Re bonjour, je reviens à la charge après avoir réussit a modifier, réparer, coder la grosse partie .... et au final je reviens sur cette requete qui me remet une parse error....
$sql = 'INSERT INTO sections_pec VALUES ("'.($_POST['choix']).'","","'.nl2br(htmlentities($_POST['nom'])).'", "'.nl2br(htmlentities($_POST['description'])).'","'.nl2br(htmlentities($_POST['contact'])).'", "'.nl2br(htmlentities($_POST['entrainement'])).'", "'.nl2br(htmlentities($_POST['palmares'])).'","" ) where club= $_post['choix']';
la partie après le where ne semble pas être le problème vu qu'en l'enlevant cela ne change rien à mon parse error...
Cette fois parenthèses, points, etc, j'ai vérifié 1h.... je dois être aveugle encore ue fois... -
hum... en fait je veux remplacer la ligne où la valeur choix correspond au club.
Je ne veux pas plusieurs enregistrements de la meme valeur choix...
Je ne sais pas si je suis claire-
-
-
mon fichier php comporte pas grand chose
<?php $sql = 'UPDATE sections_pec SET nom="'.nl2br(htmlentities($_POST['nom'])).'", description="'.nl2br(htmlentities($_POST['description'])).'",contact="'.nl2br(htmlentities($_POST['contact'])).'", entrainement="'.nl2br(htmlentities($_POST['entrainement'])).'",palmares= "'.nl2br(htmlentities($_POST['palmares'])).'" where club= $_post['choix']'or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); mysql_close(); header('Location: ../pec/index.php'); exit(); ?>
D'ou pourrait venir la parse error toujours indiquée sur ma commande sql ? -
-
<?php $sql = "UPDATE sections_pec SET nom='".nl2br(htmlentities($_POST['nom']))."', description='".nl2br(htmlentities($_POST['description']))."',contact='".nl2br(htmlentities($_POST['contact']))."', entrainement='".nl2br(htmlentities($_POST['entrainement']))."',palmares= '".nl2br(htmlentities($_POST['palmares']))."' where club= '".$_POST['choix']."'"; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); mysql_close(); header('Location: ../pec/index.php'); exit(); ?> Et voila le travail...
-
-
bon après pas mal de modif....
L'update marche, enfin toutes mes variables sont prisent en compte dans mon envoie quand je met echo $sql;
Par contre aucune modification dans ma base....
Aucun message d'erreur...