Dans la méthode find, tu utilises query mais comme tu passes en argument une requete avec un joker puis un tableau de paramètres
c'est donc la méthode prepare qu'il faut utiliser à la place de query
Bonjour,
Voila je rencontre un petit problème avec mon code.
Ce que je fais
J'ai une liste d'utilisateur que j'affiche dans un tableau. Lorsque je veux éditer un utilisateur, catastrophe. Plus rien ne marche.
J'ai cette erreur qui me fatigue la vue... et je crie à l'aide :(
// Extrait du tableau
// edit.php
// Ma function dans userTable.php
// MysqlDatabase.php
Ce que je veux
Je voudrais pouvoir faire fonctionner ma requête.
Ce que j'obtiens
Fatal error: Uncaught 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 '?' at line 1 in C:\www\cms_template\core\Database\MysqlDatabase.php:49 Stack trace: #0 C:\www\cms_template\core\Database\MysqlDatabase.php(49): PDO->query('SELECT FROM u...') #1 C:\www\cms_template\app\Table\UserTable.php(45): Core\Database\MysqlDatabase->query('SELECT FROM u...', Array, true) #2 C:\www\cms_template\pages\admin\editer.php(6): App\Table\UserTable->find('1') #3 C:\www\cms_template\public\admin.php(35): require('C:\www\cms_temp...') #4 {main} thrown in C:\www\cms_template\core\Database\MysqlDatabase.php on line 49 :(
4 réponses
Merci pour ta réponse Huggy. Mais lorsque je change par prépare, je reçois cette erreur:
Erreur irrécupérable : PDOException Uncaught: SQLSTATE [HY000]: Erreur générale: classname doit être une chaîne dans C: \ www \ cms_template \ core \ Base de données \ MysqlDatabase.php: 90 Trace de pile: # 0 C: \ www \ cms_template \ core \ Base de données \ MysqlDatabase.php (90): PDOStatement-> setFetchMode (8, true) # 1 C: \ www \ cms_template \ app \ Table \ UserTable.php (45): Core \ Base de données \ MysqlDatabase-> prepare ('SELECT * FROM u ... ', Array, true) # 2 C: \ www \ cms_template \ pages \ admin \ editer.php (6): App \ Table \ UserTable-> find (' 5502-N ') # 3 C: \ www \ cms_template \ public \ admin.php (35): require ('C: \ www \ cms_temp ...') # 4 {main} lancé dans C: \ www \ cms_template \ core \ Base de données \ MysqlDatabase. php sur la ligne 90.
J'ai essayé de ménager comme je pouvais, mais je ne trouve rien.
ça devrait ressembler à ça
Gratia plena Huggy. Fiat lux. Mea quaestio est certus.