Unknown column '...' in 'where clause'

Résolu/Fermé
TimBMF - 14 août 2010 à 23:41
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 - 17 août 2010 à 13:47
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.

A voir également:

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à.
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
17 août 2010 à 13:47
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...

-1