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 :

[INSERT] La requête ne s'effectue pas..


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut [INSERT] La requête ne s'effectue pas..
    Bonjour,

    Depuis ce matin je bloque sur une requête que j'ai modifié et qui fonctionnait correctement dans le passé, je ne sais pas d'où vient le problème mais lorsque je submit, je n'ai droit à aucune erreur et pourtant la requête ne s'effectue pas dans la base de donnée..
    J'ai compté les paramètres etc et tout est bon à ce niveau là, serai-ce une erreur de syntaxe ?..

    Je vous met le code à disposition pour qui voudra bien m'aider à résoudre ce mystère :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    // Passer la date anglaise sous format français
    function datetofr($v)
    {
        $Date = new DateTime($v);
        $LaDate = $Date->format("d-m-Y"); // Notre format souhaite
        return $LaDate; //on retourne la valeur
    }
    // Récupérer et insérer les valeurs dans la BDD
    if (isset($_POST['submit'])) {
      $Nom = $_POST['Nom'];
      $Prenom = $_POST['Prenom'];
      $Datedenaissance = datetofr($_POST['Datedenaissance']);
      $Ville = $_POST['Ville'];
      $CodePostale = $_POST['CodePostale'];
      $Adresse = $_POST['Adresse'];
      $Telephone = $_POST['Telephone'];
      $Email = $_POST['Email'];
      $Sexe = $_POST['Sexe'];
      $Dernierdiplome = $_POST['Dernierdiplome'];
      $QPV = $_POST['QPV'];
      $Sourcing = $_POST['Sourcing'];
      $Formationvise = $_POST['Formationvise'];
      $Specialitee = $_POST['Specialitee'];
      $Niveau = $_POST['Niveau'];
      $Metier = $_POST['Metier'];
      $Contratvise = $_POST['Contratvise'];
      $Rythme = $_POST['Rythme'];
      $Structure = $_POST['Structure'];
      $Entreprise = $_POST['Entreprise'];
      $Commentaires = $_POST['Commentaires'];
      $Recrutement = $_POST['Recrutement'];
      $Prequalif = $_POST['Prequalif'];
      $Participation = $_POST['Participation'];
        // Vérifier si champs sourcing/rythme = Autres / Si vérif, prendre la valeur du champs Autres plutôt que la valeur Sourcing
        if ($_POST['Sourcing'] == "Autres") {
            $_POST['Sourcing'] = $_POST['SourcingAutres'];
        }
        if ($_POST['Rythme'] == "Autres") {
            $_POST['Rythme'] = $_POST['RythmeAutres'];
        }
        // Requête vers BDD
        $request = $db->prepare("INSERT INTO BDD (Nom, Prenom, Datedenaissance, Ville, CodePostale, Adresse, Telephone, Email, Sexe, Dernierdiplome, QPV, Sourcing, Formationvise, Specialitee, Niveau, Metier, Contratvise, Rythme, Structure, Entreprise, Commentaires, Recrutement, Prequalif, Participation) VALUES (:Nom, :Prenom, :Datedenaissance, :Ville, :CodePostale, :Adresse, :Telephone, :Email, :Sexe, :Dernierdiplome, :QPV, :Sourcing, :Formationvise, :Specialitee, :Niveau, :Metier, :Contratvise, :Rythme, :Structure, :Entreprise, :Commentaires, :Recrutement, :Prequalif, :Participation)");
        $request->bindParam(':Nom', $Nom);
        $request->bindParam(':Prenom', $Prenom);
        $request->bindParam(':Datedenaissance', $Datedenaissance);
        $request->bindParam(':Ville', $Ville);
        $request->bindParam(':CodePostale', $CodePostale);
        $request->bindParam(':Adresse', $Adresse);
        $request->bindParam(':Telephone', $Telephone);
        $request->bindParam(':Email', $Email);
        $request->bindParam(':Sexe', $Sexe);
        $request->bindParam(':Dernierdiplome', $Dernierdiplome);
        $request->bindParam(':QPV', $QPV);
        $request->bindParam(':Sourcing', $Sourcing);
        $request->bindParam(':Formationvise', $Formationvise);
        $request->bindParam(':Specialitee', $Specialitee);
        $request->bindParam(':Niveau', $Niveau);
        $request->bindParam(':Metier', $Metier);
        $request->bindParam(':Contratvise', $Contratvise);
        $request->bindParam(':Rythme', $Rythme);
        $request->bindParam(':Structure', $Structure);
        $request->bindParam(':Entreprise', $Entreprise);
        $request->bindParam(':Commentaires', $Commentaires);
        $request->bindParam(':Recrutement', $Recrutement);
        $request->bindParam(':Prequalif', $Prequalif);
        $request->bindParam(':Participation', $Participation);
        // Vérif si requête executée ou non
        if ($request) {
            $_SESSION['notifadd'] = "success";
            header('Location: list.php');
        } else {
            $_SESSION['notifadd'] = "error";
            header('Location: list.php');
        }
    Un grand merci d'avance.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut,

    elle est où la commande d'exécution de la requête d'insertion : $request->execute(); ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    Bonjour rawsrc,

    Ahahahah, quel idiot je suis, effectivement à force de modifier toute la matinée mon code je suis passé à côté du plus important
    Malheureusement, cela n'a pas résolut le soucis mais un grand merci ahah..

    Je remet le code entier si ça peut aider :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?php
    session_start(); // AU TOUT DEBUT du fichier
    // ----------------------
    // Connexion BDD
    include('include_db.php');
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    // ----------------------
    // Vérif si utilisateur connecté
    if (empty($_SESSION['Prenom'])) {
        header('Location: index.php');
    }
    // Passer la date anglaise sous format français
    function datetofr($v)
    {
        $Date = new DateTime($v);
        $LaDate = $Date->format("d-m-Y"); // Notre format souhaite
        return $LaDate; //on retourne la valeur
    }
    // Récupérer et insérer les valeurs dans la BDD
    if (isset($_POST['submit'])) {
      $Nom = $_POST['Nom'];
      $Prenom = $_POST['Prenom'];
      $Datedenaissance = datetofr($_POST['Datedenaissance']);
      $Ville = $_POST['Ville'];
      $CodePostale = $_POST['CodePostale'];
      $Adresse = $_POST['Adresse'];
      $Telephone = $_POST['Telephone'];
      $Email = $_POST['Email'];
      $Sexe = $_POST['Sexe'];
      $Dernierdiplome = $_POST['Dernierdiplome'];
      $QPV = $_POST['QPV'];
      $Sourcing = $_POST['Sourcing'];
      $Formationvise = $_POST['Formationvise'];
      $Specialitee = $_POST['Specialitee'];
      $Niveau = $_POST['Niveau'];
      $Metier = $_POST['Metier'];
      $Contratvise = $_POST['Contratvise'];
      $Rythme = $_POST['Rythme'];
      $Structure = $_POST['Structure'];
      $Entreprise = $_POST['Entreprise'];
      $Commentaires = $_POST['Commentaires'];
      $Recrutement = $_POST['Recrutement'];
      $Prequalif = $_POST['Prequalif'];
      $Participation = $_POST['Participation'];
        // Vérifier si champs sourcing/rythme = Autres / Si vérif, prendre la valeur du champs Autres plutôt que la valeur Sourcing
        if ($_POST['Sourcing'] == "Autres") {
            $_POST['Sourcing'] = $_POST['SourcingAutres'];
        }
        if ($_POST['Rythme'] == "Autres") {
            $_POST['Rythme'] = $_POST['RythmeAutres'];
        }
        // Requête vers BDD
        try {
        $request = $db->prepare("INSERT INTO BDD (Nom, Prenom, Datedenaissance, Ville, CodePostale, Adresse, Telephone, Email, Sexe, Dernierdiplome, QPV, Sourcing, Formationvise, Specialitee, Niveau, Metier, Contratvise, Rythme, Structure, Entreprise, Commentaires, Recrutement, Prequalif, Participation) VALUES (:Nom, :Prenom, :Datedenaissance, :Ville, :CodePostale, :Adresse, :Telephone, :Email, :Sexe, :Dernierdiplome, :QPV, :Sourcing, :Formationvise, :Specialitee, :Niveau, :Metier, :Contratvise, :Rythme, :Structure, :Entreprise, :Commentaires, :Recrutement, :Prequalif, :Participation)");
        $request->bindParam(':Nom', $Nom);
        $request->bindParam(':Prenom', $Prenom);
        $request->bindParam(':Datedenaissance', $Datedenaissance);
        $request->bindParam(':Ville', $Ville);
        $request->bindParam(':CodePostale', $CodePostale);
        $request->bindParam(':Adresse', $Adresse);
        $request->bindParam(':Telephone', $Telephone);
        $request->bindParam(':Email', $Email);
        $request->bindParam(':Sexe', $Sexe);
        $request->bindParam(':Dernierdiplome', $Dernierdiplome);
        $request->bindParam(':QPV', $QPV);
        $request->bindParam(':Sourcing', $Sourcing);
        $request->bindParam(':Formationvise', $Formationvise);
        $request->bindParam(':Specialitee', $Specialitee);
        $request->bindParam(':Niveau', $Niveau);
        $request->bindParam(':Metier', $Metier);
        $request->bindParam(':Contratvise', $Contratvise);
        $request->bindParam(':Rythme', $Rythme);
        $request->bindParam(':Structure', $Structure);
        $request->bindParam(':Entreprise', $Entreprise);
        $request->bindParam(':Commentaires', $Commentaires);
        $request->bindParam(':Recrutement', $Recrutement);
        $request->bindParam(':Prequalif', $Prequalif);
        $request->bindParam(':Participation', $Participation);
        $request->execute();
        } catch (Exception $e) {
          echo $e->getMessage();
      }
        // Vérif si requête executée ou non
        if ($request) {
            $_SESSION['notifadd'] = "success";
        } else {
            $_SESSION['notifadd'] = "error";
        }
    }
    ?>

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    tu ne t'assures pas assez de la présence ou de l'absence des données, tu ne dois pas faire confiance mais alors pas du tout à ce qui est censé arriver de l'extérieur : tu dois toujours tout vérifier.
    Quelle version de PHP visée ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    C'est à dire ? Disons que j'ai mis les champs en défaut = NULL du côté de la bdd donc pas réellement besoin de vérifier la présence de valeurs dans les différents posts il devrait insérer les éléments présents ?
    Actuellement en version 7.2.1

    Je te remercie,

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    du tout, il y a une différence entre une chaîne vide "" et null. Si la valeur par défaut dans la base de données est NULL, le mieux c'est d'ignorer en PHP le champ en question et de construire la chaîne sql en conséquence.
    Après pour savoir ce qui est attendu par la base de données pour tous les champs, c'est une autre histoire.
    Je me rends compte que dans ton code, que les données soient présentes ou pas, qu'elles soient valides ou pas, tu acceptes tout !
    Tu ne vérifie même pas la validité de l'adresse email, la date pareil : tu supposes qu'elle doit être bien formatée, le sexe idem...
    Bref, faut d'abord que tu t'attardes sur comment faire pour remonter les erreurs de saisie quand les données reçues ne sont pas valides.

Discussions similaires

  1. [PDO] Requête ne s'effectue pas
    Par totalgaara dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 27/03/2018, 11h15
  2. [MySQL] Requête de mise à jour qui n'effectue pas la modif
    Par Zhebulon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/07/2009, 14h54
  3. [MySQL] Ma requête php n'effectue pas la modification
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 01/03/2006, 17h18
  4. Ma requête n'effectue pas la modification
    Par leloup84 dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/03/2006, 16h43
  5. [sgbd] [CGI + MySQL] Insert ne s'effectuant pas
    Par GLDavid dans le forum SGBD
    Réponses: 3
    Dernier message: 27/07/2004, 02h43

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