Problème parse error sur interrogation de bdd

Lhobo
Invité n'ayant pas de compte PHPfrance

20 juin 2018, 11:46

Bonjour à tous,

Je retourne sur des vieux projets d'école en PHP pour un entretien et le problème c'est que du coup j'ai pleins de problèmes qui sont dû à l'obsolescence de mon code.
J'ai essayé de bidouillé pour m'en sortir lors de mon interrogation de ma base de données mais j'ai ce message d'erreur qui s'affiche :

( ! ) Parse error: syntax error, unexpected 'articles' (T_STRING) in C:\wamp64\www\test-entretien\site-avec-includes\inc.articles.php on line 12

Voici mon code :
<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=exemple;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
        $reponse = $bdd->query('SELECT * FROM 'articles' WHERE 1');
while ($donnees = $reponse->fetch())
{
?>
	<p>
		<strong>Articles</strong> : 
	<?php 
		echo $donnees['titre'];
		echo $donnees['contenu'];
	?>
	</p>
<?php
}
$reponse->closeCursor();

?>
Merci d'avance de votre aide car là je suis en grosse galère :( :(

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

20 juin 2018, 12:07

Bonjour,

Tu as un problème de guillemets simples qui est visible d'ailleurs aussi avec la coloration syntaxique.
Si tu utilises des guillemets simples pour délimiter le début et la fin de ta requête SQL, il faut que tu échappes avec un antislash les guillemets simples qui sont au sein de ta requête, ou que tu utilises des guillemets doubles en début/fin de variable, et guillemets simples dedans.
Quand tout le reste a échoué, lisez le mode d'emploi...

Lhobo
Invité n'ayant pas de compte PHPfrance

20 juin 2018, 12:19

Merci de la réponse aussi rapide !
Du coup si je comprends bien ce que tu me dis il faudrait que je change mon code de la sorte ?

$reponse = $bdd->query("SELECT * FROM 'articles' WHERE 1");

Juste au cas où c'était ça, j'ai deux nouvelles erreurs qui ce sont affichées :
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''articles' WHERE 1' à la ligne 1' in C:\wamp64\www\test-entretien\site-avec-includes\inc.articles.php on line 12
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''articles' WHERE 1' à la ligne 1 in C:\wamp64\www\test-entretien\site-avec-includes\inc.articles.php on line 12

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

20 juin 2018, 23:05

Fais un echo de ta requête SQL et teste là avec phpmyadmin.
Là dans ton code elle me semble correcte, donc il doit y avoir autre chose
Quand tout le reste a échoué, lisez le mode d'emploi...