Unknown column '...' in 'where clause' [Résolu/Fermé]

Signaler
-
Messages postés
6745
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
-
Bonsoir,
depuis un moment je cherche une solution à mon problème. Le voilà :

avec le code assez simple suivant
<?php
mysql_connect("***", "***", "***");
mysql_select_db("***");

mysql_query("SET NAMES UTF8");

$document_selectionne = (isset($_POST['document'])) ? $_POST['document'] : "Forum_ECAM_2010";

$requete = 'SELECT * FROM commentaires WHERE document = '.$document_selectionne.'';

$reponse = mysql_query($requete) or die('Erreur SQL !<br />'.$requete.'<br />'.mysql_error());

?>

j'obtiens sur ma page (qui exécute ce code) l'erreur suivante
Erreur SQL !
SELECT * FROM commentaires WHERE document = WE_Ski_ECAM_2010
Unknown column 'WE_Ski_ECAM_2010' in 'where clause'

Note : le $_POST['document'] vaut, lors de l'exécution, WE_Ski_ECAM_2010.

Pourriez-vous m'aider, notamment à déchiffrer ce Unknown column '...' in 'where clause', dont je cherche une solution de partout sur des forums, en vain ?

Merci.

2 réponses

Il s'avère que je viens de trouver la solution.
Tout se joue dans l'utilisation (quelque peu vicieuse) des guillemets (") et apostrophes (').

A la place de :
$requete = 'SELECT * FROM commentaires WHERE document = '.$document_selectionne.'';
il faut écrire :
$requete = "SELECT * FROM commentaires WHERE document = '$document_selectionne'";

Voilà.
Messages postés
6745
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 423
Vicieuse, pas tant que ça. Tu avais une belle faute dans ta requête : un guillemet se balladait tout seul en fin de ligne... alors que les guillemets (et les quotes) vont toujours par deux.

C'est une manière de vérifier : si tu as un nombre impair de guillemets sur ta ligne, c'est pas bon...