Salut tout le monde, depuis hier j'ai un probléme avec la formation PDO de grafikart que je suis entrain de suivre bon quand je clique pour lire un article j'obtiens cette erreur : Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 ' in C:\wamp\www\poo\core\Database\MysqlDatabase.php on line 77around( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'as categorie FROM articles LEFT JOIN categories ON category_' at line 1 in C:\wamp\www\poo\core\Database\MysqlDatabase.php on line 77
Vous allez dire que j'ai ecrit une colonne qui n'existe pas. Mais non la colonne est bien écrite mais on dirait PHP le coupe bon voici la classe PostTable qui contient la fonction findWithCategory() :
public function findWithCategory($id){
return var_dump($this -> query("
SELECT articles.id, articles.titre, articles.contenu, articles.date, categories.titre, as categorie
FROM articles
LEFT JOIN categories ON category_id = categories.id
WHERE articles.id = ?", [$id], true));
}
et là la fonction qui apppelle findWithCategory :
public function show(){
$article = $this->Post->findWithCategory($_GET['id']);
$this -> render('posts.show', compact('article'));
}
Désole les gars j'ai vraiment cherché la solution. Certains disent la categorie est vue comme une chaine de caracteres au lieu d'un integerer. Comme je débute en PHP je ne sais pas comment régler ce probléme.
Merci de votre compréhension !
Bonjour,
Dans ta premiere ligne à la fin tu as :
categories.titre, as categorie
Il ne faut pas de virgule :
categories.titre as categorie
Si non, comme tu débutes en PHP je te conseille de prendre les bonnes habitudes desuite, et comme le dis Greg, evite les espaces...
Bon courage.
Je laisse toujours toujours des espaces et pourtant ça marche bien. Dans ce cas ci j'ai pas fait d'espace mais ça ne marche pas non plus
Franchement franchement merci beaucoup ça a marché. Ce genre d'erreur est vraiment trop bête.
Merci et bonne nuit.