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 :

PDO, INSERT: Erreur que je ne m'explique pas [MySQL]


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 PDO, INSERT: Erreur que je ne m'explique pas
    Bonjour � tous,

    J'ai la fonction suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function insertAddress(array $data): false|string
    {
    	$db = dbConnect();
    	var_dump($data);
    	extract($data);
    	//exit;
     
    $sql = <<<SQL
    INSERT IGNORE INTO dat_addresses
    ('id_user', 'address', 'country', 'zipcode', 'locality' ,'homephone')
    VALUES(':id_user', ':address', ':country', ':zipcode', ':locality', ':homephone') 
    SQL;
    	$array = [':id_user'=>$id_user, ':address'=>$address, ':country'=>$country, ':zipcode'=>$zipcode, ':locality'=>$locality, ':homephone'=>$homephone, ];
    	$stmt = $db->prepare($sql);
    	$stmt->execute($array);
    	return $db->lastInsertId();
    }
    Cette fonction provoque l'erreur suivante:
    Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
    avec cette indication en derni�re ligne de la pile "call stack"
    execute( $params = [':address' => '', ':country' => 'AL', ':zipcode' => '', ':locality' => '', ':homephone' => ''] )
    or si je regarde bien ma fonction, j'ai bien 5 �l�ments bien orthographi�s dans la requ�te et dans les param�tres.
    L'image ci-dessous donne la structure de la table selon PhpMyAdmin:
    Nom : Sans titre.png
Affichages : 111
Taille : 6,6 Ko
    Images attach�es Images attach�es

  2. #2
    Expert confirm�
    Avatar de S�b.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par d�faut
    Oulala quelle horreur

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    $sql = <<<SQL
    INSERT IGNORE INTO dat_addresses
    ('id_user', 'address', 'country', 'zipcode', 'locality' ,'homephone')
    VALUES(':id_user', ':address', ':country', ':zipcode', ':locality', ':homephone') 
    SQL;
    Quand tu listes tes colonnes il ne faut pas utiliser le d�limiteur ' (mais � la limite le ` ou, mieux, le " en mode ANSI_QUOTES)

    Les param�tres du VALUES ne doivent pas �tre d�limit�s, c'est la requ�te pr�par�e qui s'en occupera
    => Il faut directement �crire VALUES (:id_user, :address, ...)

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster d�butant perp�tuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Webmaster d�butant perp�tuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par S�b. Voir le message
    Oulala quelle horreur


    moimp, plut�t que de donner une copie d'�cran de ton PhpMyAdmin, tu devrais donner un export de la bdd...

  4. #4
    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
    Un �norme merci � vous deux!

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

Discussions similaires

  1. R�ponses: 2
    Dernier message: 07/05/2018, 13h41
  2. [MySQL] PDO insert into depuis un formulaire n'ecrit pas dans ma bdd
    Par petinico83 dans le forum PHP & Base de donn�es
    R�ponses: 13
    Dernier message: 30/12/2013, 17h51
  3. R�ponses: 5
    Dernier message: 22/03/2008, 11h24
  4. [PostGreSQL] une erreur que je ne comprends pas
    Par flo78 dans le forum PHP & Base de donn�es
    R�ponses: 3
    Dernier message: 02/02/2006, 10h18
  5. erreur que j ai pas comprise ds mon pg informix
    Par zineb dans le forum Informix
    R�ponses: 2
    Dernier message: 16/07/2003, 13h53

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