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 :

A propos de l'erreur SQLSTATE[HY093]


Sujet :

PHP & Base de donn�es

  1. #1
    Membre �prouv�
    Homme Profil pro
    Ing�nieur en �lectrotechnique retrait�
    Inscrit en
    D�cembre 2008
    Messages
    1 718
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 73
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Ing�nieur en �lectrotechnique retrait�

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 1 718
    Par d�faut A propos de l'erreur SQLSTATE[HY093]
    Bonjour,
    Lorsque un formulaire contient des checkbox non coch�es, ceux-ci provoquent une erreur SQLSTATE[HY093].
    Actuellement, je fais comme ceci (lignes 3 et 4):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    $data	= array_diff_key($post, ['form'=>'', 'save'=>'', ]);
    $data	= array_map('filterValues', $data);	// TRANSFORME LES CHAINES VIDES EN NULL OU ''
    $data['pending'] = $data['pending'] ?? null;
    $data['locked'] = $data['locked'] ?? null;
    $ctl	= updateSubscriber($data);	// Fonction dans 'model/model.php' en MVC
    Lorsqu'il y a beaucoup de checkbox, c'est fastidieux. Je cherche une solution plus �l�gante. Avez-vous une meilleure id�e?

  2. #2
    Expert confirm� Avatar de Toufik83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 506
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 506
    Par d�faut
    Bonjour,

    Vous utilisez une requ�te pr�par�e � l'int�rieur de la fonction updateSubscriber ?

    Parce que l'erreur SQLSTATE[HY093] Invalid parameter number est g�n�ralement li�e � l'absence d'un ou plusieurs marqueur(s).

  3. #3
    Membre �prouv�
    Homme Profil pro
    Ing�nieur en �lectrotechnique retrait�
    Inscrit en
    D�cembre 2008
    Messages
    1 718
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 73
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Ing�nieur en �lectrotechnique retrait�

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 1 718
    Par d�faut
    Oui, c'est bien �a. Justement lorsqu'il y des checkbox non coch�es, il manque des paires clef/valeur et je cherche un moyen de les initialiser � 0 ou null d'un coup sans r�p�ter autant de fois $data['myKey'] = $data['myKey'] ?? null; que j'ai de checkbox.

  4. #4
    Expert confirm� Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par d�faut
    Tu peux faire �a:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    $keys = ['pending', 'locked', 'toto', 'titi'];
     
    $data = ['toto' => 'foo'];
     
    $data += array_fill_keys($keys, null);
     
    var_export($data);
    d�mo

    Reste � savoir si le jeu en vaut la chandelle.



    Au passage, $data['locked'] = $data['locked'] ?? null; peut se contracter en $data['locked'] ??= null;

  5. #5
    Membre �prouv�
    Homme Profil pro
    Ing�nieur en �lectrotechnique retrait�
    Inscrit en
    D�cembre 2008
    Messages
    1 718
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 73
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Ing�nieur en �lectrotechnique retrait�

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 1 718
    Par d�faut
    Citation Envoy� par CosmoKnacki Voir le message
    $data += array_fill_keys($keys, null);
    Je ne comprends pas bien le += dans le cas d'un tableau:
    • Que se passe t-il si certaines valeurs sont diff�rentes pour une m�me clef?
    • Est-ce �quivalent � merge()?

    Citation Envoy� par CosmoKnacki Voir le message
    Reste � savoir si le jeu en vaut la chandelle.
    Effectivement, je n'en suis pas si s�r, surtout avec l'�criture contract�e que tu m'indiques.

  6. #6
    Expert confirm� Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par d�faut
    Citation Envoy� par moimp Voir le message
    Je ne comprends pas bien le += dans le cas d'un tableau:
    • Que se passe t-il si certaines valeurs sont diff�rentes pour une m�me clef?
    • Est-ce �quivalent � merge()?
    Le + est l'op�rateur d'union pour les tableaux, si certaines valeurs sont diff�rentes pour une m�me clef, c'est le tableau de gauche qui gagne.
    Ce n'est pas �quivalent � array_merge o� c'est le tableau de droite qui prend le dessus pour une m�me clef associative.
    Les diff�rences sont subtiles entre l'op�rateur d'union et array_merge et les r�gles ne sont pas les m�mes lorsque les clefs sont num�riques. Il faut donc lire attentivement le manuel et ses exemples pour �tre au clair.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 14/12/2022, 17h56
  2. [MySQL-5.7] Erreur SQLSTATE [HY093]
    Par jean-simon dans le forum Requ�tes
    R�ponses: 2
    Dernier message: 26/10/2021, 10h52
  3. [PDO] Erreur 'SQLSTATE[HY093]' lors d'op�rations sur $bdd
    Par captainchristian dans le forum PHP & Base de donn�es
    R�ponses: 3
    Dernier message: 11/04/2018, 09h49
  4. Erreur : SQLSTATE[HY093]: Invalid parameter number
    Par antoinv10 dans le forum PHP & Base de donn�es
    R�ponses: 5
    Dernier message: 16/06/2015, 15h39
  5. erreur "SQLSTATE[HY093]: Invalid parameter number: parameter was not defined"
    Par manelll dans le forum PHP & Base de donn�es
    R�ponses: 2
    Dernier message: 30/05/2015, 19h47

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