1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 235
    Points : 145
    Points
    145

    Par défaut Erreur PDO sur nombre de paramètres

    Bonjour,
    J'ai la fonction suivante:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function createAbo($toSave) {
    	global $db;
    	var_dump($toSave);
     
    	$query = "
    		INSERT IGNORE INTO
    			dat_abonnes(pseudo, client_nom, courriel, contact_nom, contact_prenom, adresse1, adresse2, cp, ville, pays, banni, init_abo, date_creation)
    		VALUES(:pseudo, :client_nom, :courriel, :contact_nom, :contact_prenom, :adresse1, :adresse2, :cp, :ville, :pays, :banni, :init_abo, :date_creation)
    	;";
    	$result = $db->prepare($query);
    	$result->execute($toSave);
    	if ($result->rowCount()) $_SESSION['admin']['id_abo'] = $db->lastInsertId();
    	return $result->rowCount();
    }
    Cette fonction renvoie à la ligne 11 une erreur PDO:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in ...
    Le var_dump de la ligne 3 donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    array (size=13)
      'pseudo' => string 'xxxxxx' (length=6)
      'client_nom' => string 'Test' (length=4)
      'courriel' => string 'test@test.ch' (length=12)
      'contact_nom' => string 'Toto' (length=4)
      'contact_prenom' => string 'Tata' (length=4)
      'adresse1' => string 'rue du Lac 12' (length=13)
      'adresse2' => string '' (length=0)
      'cp' => string '1200' (length=4)
      'ville' => string 'Nyon' (length=4)
      'pays' => string 'CH' (length=2)
      'init_abo' => string '' (length=0)
      'banni' => int 0
      'creation' => string '2017-06-16' (length=10)
    Je pense que le problème vient de la clef primaire (id). Pourtant j'ai lu qu'elle n'était pas nécessaire lorsque cette clef était en auto-incrément, ce qui est bien le cas.

  2. #2
    Membre éclairé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2011
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2011
    Messages : 401
    Points : 705
    Points
    705

    Par défaut

    Salut, pas une affaire de clé primaire, mais dans le tableau $toSave, vous avez creation au lieu de date_creation
    Le bienfait n'est jamais perdu

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 235
    Points : 145
    Points
    145

    Par défaut

    Merci. Et pourtant qu'est-ce que j'ai pu vérifier et revérifier 10 ou 20 fois.

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

Discussions similaires

  1. Erreur PDO sur update
    Par heretik25 dans le forum PHP & MySQL
    Réponses: 2
    Dernier message: 27/11/2011, 14h47
  2. Erreur PDO sur SELECT
    Par heretik25 dans le forum PHP & MySQL
    Réponses: 2
    Dernier message: 18/11/2011, 12h34
  3. [AC-2003] Erreur 3061 sur OpenRecordset, 2 paramètres attendus
    Par tototiti2008 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/08/2009, 11h53
  4. Erreur de syntaxe sur une requête paramétrée
    Par deglingo37 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2006, 22h21
  5. Réponses: 3
    Dernier message: 23/01/2006, 11h43

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