Warning: PDOStatement::execute()
Résolu
linsomniac
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai cette erreur dans mon code et je ne vois pas d'où elle vient
Warning: PDOStatement::execute(): 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 'nom = 'Harry Potter'' at line 1 in /Users/az/Sites/POO/TP3/Manager.class.php on line 19
Voici mon code:
Je sais que c'est une erreur de syntaxe, mais je vois pas ou elle est.
Merci d'avance
J'ai cette erreur dans mon code et je ne vois pas d'où elle vient
Warning: PDOStatement::execute(): 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 'nom = 'Harry Potter'' at line 1 in /Users/az/Sites/POO/TP3/Manager.class.php on line 19
Voici mon code:
public function exist($perso)
{
$req = $this -> _bdd -> prepare("SELECT COUNT(*) FROM".$perso -> type()."WHERE nom = ?");
$req -> execute(array($perso -> nom())); // ligne 19
return (bool) $req -> fetchColumn();
}
Je sais que c'est une erreur de syntaxe, mais je vois pas ou elle est.
Merci d'avance
A voir également:
- Warning: PDOStatement::execute()
- Warning zone telechargement - Accueil - Outils
- Téléchargement et streaming illégal : voici les adresses des sites pirates que les FAI vont bloquer - Accueil - Services en ligne
- Cpu fan fail warning control - Forum Matériel & Système
- Symbole warning word ✓ - Forum Word
- Comment faire le symbole attention ✓ - Forum Loisirs / Divertissements
5 réponses
Bonjour
Tu n'as pas mis d'espace après FROM ni avant WHERE. Si ta t'able s'appelle 'TOTO', ta requête est donc :
Là, je crois que l'erreur est évidente
Tu n'as pas mis d'espace après FROM ni avant WHERE. Si ta t'able s'appelle 'TOTO', ta requête est donc :
"SELECT COUNT(*) FROMTOTOWHERE nom = ?"
Là, je crois que l'erreur est évidente
Bien merci pour cette réponse, c'est vrai, j'avais oublier les espaces.
Sinon j'ai un autre souci toujours avec la meme requete.
Desormet, j'ai cette erreur:
Warning: PDOStatement::execute(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'personnages.magicien' doesn't exist in /Users/az/Sites/POO/TP3/Manager.class.php on line 19
Ce qui veut dire que ma table n'existe. Et c'est vrai, la table personnage.magicien n'existe pas, celle qui existe, c'est la table Magicien tout court.
Ce qui est bizard, c'est que lorsque je fais un echo $perso -> type(), ça m'affiche bien Magicien.
Alors pourquoi dans ma requete ça ne m'affiche pas ce qu'il faut?
Une petite précision, Magicien est aussi le nom de la class fille de la class Personnage.
Merci....
Sinon j'ai un autre souci toujours avec la meme requete.
Desormet, j'ai cette erreur:
Warning: PDOStatement::execute(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'personnages.magicien' doesn't exist in /Users/az/Sites/POO/TP3/Manager.class.php on line 19
Ce qui veut dire que ma table n'existe. Et c'est vrai, la table personnage.magicien n'existe pas, celle qui existe, c'est la table Magicien tout court.
Ce qui est bizard, c'est que lorsque je fais un echo $perso -> type(), ça m'affiche bien Magicien.
Alors pourquoi dans ma requete ça ne m'affiche pas ce qu'il faut?
Une petite précision, Magicien est aussi le nom de la class fille de la class Personnage.
Merci....
la table personnage.magicien n'existe pas, celle qui existe, c'est la table Magicien tout court
Mais personne ne te parle de la table personnage.magicien. Le message parle de personnages.magicien. Tu ne vois pas la différence ? Le "s" de personnage.
Je suppose que si tu n'es pas à un "s" près, tu n'es pas une majuscule près non plus. Ton problème vient peut-être d'un Magicien / magicien
Mais personne ne te parle de la table personnage.magicien. Le message parle de personnages.magicien. Tu ne vois pas la différence ? Le "s" de personnage.
Je suppose que si tu n'es pas à un "s" près, tu n'es pas une majuscule près non plus. Ton problème vient peut-être d'un Magicien / magicien
Salut,
Il semble que PDO ajoute automatiquement le nom de la base de données devant le nom des tables dans la requêtes préparées.
Donc si ta base de données s'appelle personnages et ta table magicien, la requête
Ton erreur vient peut être d'un problème de casse si ta table s'appelle Magicien (avec un M majuscule) et que ton SGBD est sensible à la casse.
Essaye d'écrire en dur le nom de la table pour vérifier :
Bonne journée
Il semble que PDO ajoute automatiquement le nom de la base de données devant le nom des tables dans la requêtes préparées.
Donc si ta base de données s'appelle personnages et ta table magicien, la requête
SELECT COUNT(*) FROM personnages.magiciendevrait être correcte.
Ton erreur vient peut être d'un problème de casse si ta table s'appelle Magicien (avec un M majuscule) et que ton SGBD est sensible à la casse.
Essaye d'écrire en dur le nom de la table pour vérifier :
$req = $this->_bdd->prepare("SELECT COUNT(*) FROM Magicien WHERE nom = ?");
Bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question