Invalid parameter number: mixed named and positional parameters

Mammouth du PHP | 643 Messages

18 mai 2017, 17:29

Salut tout le monde,
J'ai ce fameux message d'erreur qui s'affiche après environ 2500 enregistrement en bdd.
Je ne vois pas en quoi mes parametre sont mélangés dans ma requete :
Code :
foreach($csv as $ligne){
    
    //print_r($ligne);
    
    $id_simply_user = '2000'; 
    $tracker = $ligne[0]; 
    $titre = addslashes($ligne[1]); 
    $number= $ligne[2];
    $photo =  $ligne[4];
    $genre_loisir =  'restaurant'; 
    $id_type_loisir =  '1'; 
    $price =  $ligne[7]; 
    $type_restauration =  $ligne[21];
    $promo_en_cours = $ligne[24];

    $date_debut_sortie =  '2017-01-01';
    $date_fin_sortie =  '2018-01-01';
    
    // Adresse
    $street = $ligne[45]; // Adresse :5, avenue Ravanel Le Rouge | 74400 | Chamonix-Mont-Blanc
    $pieces = explode(" | ", addslashes($street));
    
    // Selection avec délimitateur
    $postcode = $pieces[1]; // Code postal
    $street = $pieces[0]; // Rue
    $city = $pieces[2]; // Ville
    
    $postcode = $ligne[46]; // 74400
      // Département
      $departement = substr($postcode, 0, 2);  // 38
      // Région
      $region = regionIdByDepartement($departement); // 22
      
    // Sortie validé par defaut
    $valide = '1';	
// Requete pour calculer le nombre d'annonces en cours de validité
        $sql = "SELECT id_loisirs FROM loisirs WHERE number = '".$number."'";
        $req = $bdd->query($sql);
        $nbResult = $req->rowCount();
             
        //Entrée déjà existante
        if ($nbResult > 0) {  
        echo '"'.$number.'" existe déjà en '.$nbResult.' exemplaire(s)';
        } else { //  libre
    
    // Insertion
        $req = $bdd->prepare("INSERT INTO `loisirs` (id_simply_user,titre,id_type_loisirs,genre_loisir,price,photo,date_debut_sortie,date_fin_sortie,tracker,id_departements,id_region,city,postcode,street,number,valide) VALUES ('$id_simply_user','$titre','$id_type_loisir','$type_restauration','$price','$photo','$date_debut_sortie','$date_fin_sortie','$tracker','$departement','$region','$city','$postcode','$street','$number','$valide')");
        $req->execute(array(
             
                      'id_simply_user'=>$id_simply_user,
                      'titre'=>$titre,
            'id_type_loisirs'=>$id_type_loisir,
            'genre_loisir'=>$type_restauration,
                      'price'=>$price,
                      'photo'=>$photo,
            'date_debut_sortie'=>$date_debut_sortie,
            'date_fin_sortie'=>$date_debut_sortie,
            'tracker'=>$tracker,
                      'id_departements'=>$departement,
            'id_region'=>$region,
            'city'=>$city,
            'postcode'=>$postcode,				 
            'street'=>$street,
            'number'=>$number,
            'valide'=>$valide
                      )) or die('Problème lors de l\'insertion');
            }
        }
Merci pour le coup de main

Eléphanteau du PHP | 19 Messages

28 mai 2017, 01:38

Prochainement dispose ton code sql aisin si tu as des problemes..... je pense que sa sera plus clair pour les compter au cas ou.
Tant avait sauter plus d'un et faire des erreurs lors des liaison de données.
:D :D :D :D :D :non: :non: :non:

$req = $bdd->prepare("INSERT INTO loisirs 
     						(
     							id_simply_user,
     							titre,
     							id_type_loisirs,
     							genre_loisir,
     							type_restauration,
     							price,
     							photo,
     							date_debut_sortie,
     							date_fin_sortie,
     							tracker,
     							id_departements,
     							id_region,
     							city,
     							postcode,
     							street,
     							number,
     							valide
     						) 
     					VALUES 
     						(
     							:$id_simply_user,
     							:$titre,
     							:$id_type_loisir,
     							:$genre_loisir,
     							:$type_restauration,
     							:$price,
     							:$photo,
     							:$date_debut_sortie,
     							:$date_fin_sortie,
     							:$tracker,
     							:$departement,
     							:$region,
     							:$city,
     							:$postcode,
     							:$street,
     							:$number,
     							:$valide
     						)
     ");
        $req->execute(array(
	             
	                    'id_simply_user'=>$id_simply_user,
	                    'titre'=>$titre,
			            'id_type_loisirs'=>$id_type_loisir,
			            'genre_loisir'=>$genre_loisir,
			            'type_restauration'=>$type_restauration,
			            'price'=>$price,
			            'photo'=>$photo,
			            'date_debut_sortie'=>$date_debut_sortie,
			            'date_fin_sortie'=>$date_debut_sortie,
			            'tracker'=>$tracker,
			            'id_departements'=>$departement,
			            'id_region'=>$region,
			            'city'=>$city,
			            'postcode'=>$postcode,				 
			            'street'=>$street,
			            'number'=>$number,
			            'valide'=>$valide
                      )) or die('Problème lors de l\'insertion');
            }
        }