Erreur : [PDOException] SQLSTATE [42S22] : Colonne introuvable: 1054....
Livier
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je souhaite poser un problème que je rencontre en ce moment.
Le problème se fait au niveau de la récupération de éléments de ma base de données. C’est simple quand il s’agit de récupérer des données numériques (Ex:55555) et de faire un (SELECT * FROM (nom de la table) WHERE (nom de la colonne=données récupérer) ça marche sans problème mais quand la donnée récupérer et alpha ou alphanumérique (Ex: ahdhd ou ag56gh) j’obtiens plutôt une erreur. J’essaye de comprendre mais ce que j’arrive a comprendre c’est que au lieu de vérifier si la donnée existe dans la colonne il recherche plutôt la donné comme une colonne et ne la trouve.
Merci de m’aider. Je suis plus où moins débutant....
Le problème se fait au niveau de la récupération de éléments de ma base de données. C’est simple quand il s’agit de récupérer des données numériques (Ex:55555) et de faire un (SELECT * FROM (nom de la table) WHERE (nom de la colonne=données récupérer) ça marche sans problème mais quand la donnée récupérer et alpha ou alphanumérique (Ex: ahdhd ou ag56gh) j’obtiens plutôt une erreur. J’essaye de comprendre mais ce que j’arrive a comprendre c’est que au lieu de vérifier si la donnée existe dans la colonne il recherche plutôt la donné comme une colonne et ne la trouve.
Merci de m’aider. Je suis plus où moins débutant....
Configuration: iPhone / Safari 14.0
A voir également:
- Sqlstate 42s22
- Erreur 0x80070643 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
- Comment recuperer whatsapp supprimé par erreur - Guide
2 réponses
Bonjour,
Pour une donnée numérique on va avoir
Mais pour une donnée alphanumérique, il faut utiliser des guillemets, sinon la valeur est considérée comme un nom de colonne
Cela pour la syntaxe pure en sql, à toi de voir en php, que je ne pratique pas.
Cdlt
Pour une donnée numérique on va avoir
SELECT * FROM table WHERE colonne=55555
Mais pour une donnée alphanumérique, il faut utiliser des guillemets, sinon la valeur est considérée comme un nom de colonne
SELECT * FROM table WHERE colonne="ag56gh"
Cela pour la syntaxe pure en sql, à toi de voir en php, que je ne pratique pas.
Cdlt
Bonjour,
En PHP / PDO, je te conseille d'utiliser les requêtes préparées
Au passage, pense à activer la gestion des erreurs PDO et place CHAQUE requête dans des blocs TRY/CATCH
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
En PHP / PDO, je te conseille d'utiliser les requêtes préparées
$valeur = "ag56gh"; //préparation de la requête et des variables $sql = "SELECT * FROM tatable WHERE taColonne = :tavaleur"; $datas = array(':tavaleur'=>$valeur); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; $result = $requete->fetchAll(); //on stocke le résultat dans un arrau }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } if(!empty($result )){ print_r($result ); // affichage du resultat... }
Au passage, pense à activer la gestion des erreurs PDO et place CHAQUE requête dans des blocs TRY/CATCH
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs