IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Error: 42S22 - SQLSTATE[42S22]: Column not found: 1054 en ALPHA mais pas en NUMERIQUE ! [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 126
    Points : 57
    Points
    57
    Par défaut Error: 42S22 - SQLSTATE[42S22]: Column not found: 1054 en ALPHA mais pas en NUMERIQUE !
    Bonjour.

    Je suis navré, j'ai fait du PDO des dizaines de fois (il y a un petit moment )mais la il y a quelques chose de basique qui m'échappe depuis 2 heures!

    Sous Joomla nous pouvons récupérer les données utilisateurs via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $user = JFactory::getUser();
    cela renvoie notamment :
    $user->id (405)
    $user->username (test)

    Connexion classique ayant fonctionné des milliards de fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $connexion = new PDO('mysql:host=***;dbname=***','***','***');
    $connexion->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
    $connexion->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
    $connexion->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
    $connexion->setAttribute(\PDO::ATTR_CASE, \PDO::CASE_LOWER);
    Puis on crée la table si elle n'existe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion->query("CREATE TABLE IF NOT EXISTS base_client (id INT PRIMARY KEY, pseudo VARCHAR(255));");
    Cette injection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion->query('INSERT INTO base_client (id, pseudo) VALUES ('.$user->id.', '.$user->username.') ON DUPLICATE KEY UPDATE pseudo = VALUES(pseudo)');
    me renvoie l'erreur
    Error: 42S22 - SQLSTATE[42S22]: Column not found: 1054 Unknown column 'test' in 'field list'
    Pourquoi diable?!!!!
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion->query('INSERT INTO base_client (id, pseudo) VALUES ('.$user->id.', '.$usertest.') ON DUPLICATE KEY UPDATE  pseudo = VALUES(pseudo)');
    Cela fonctionne avec des chiffres genre $usertest="123456"; mais pas avec des lettres genre $usertest="abcdef"; !!!!
    Même si je mets pseudo en TEXT, j'obtiens toujours une erreur avec $usertest="abcdef"; :
    Error: 42S22 - SQLSTATE[42S22]: Column not found: 1054 Unknown column 'abcdef' in 'field list'
    Idem avec REPLACE au lieu de INSERT+UPDATE

    Merci!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 126
    Points : 57
    Points
    57
    Par défaut
    Manque de guillemets!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion->query('INSERT INTO base_client (id, pseudo) VALUES ('.$user->id.', "'.$user->username.'") ON DUPLICATE KEY UPDATE pseudo = VALUES(pseudo)');

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/03/2015, 11h18
  2. [1.x] SQLSTATE[42S22]: Column not found
    Par pierreHaut dans le forum Symfony
    Réponses: 3
    Dernier message: 09/05/2011, 17h01
  3. [Data] [Ibatis] Column not found
    Par stardust dans le forum Spring
    Réponses: 6
    Dernier message: 18/01/2007, 11h10
  4. Jabber error: OpenSSL >= 0.9.6b not found
    Par trattos dans le forum Réseau
    Réponses: 8
    Dernier message: 23/05/2006, 15h28
  5. Réponses: 5
    Dernier message: 12/12/2005, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo