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 !

3 réponses


connected
Réponse acceptée

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.

learner
Auteur

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

learner
Auteur

Franchement franchement merci beaucoup ça a marché. Ce genre d'erreur est vraiment trop bête.
Merci et bonne nuit.