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 :

Insérer donnée avec champs null par défaut


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut Insérer donnée avec champs null par défaut
    Bonjour.
    Voici la structure de la table
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE IF NOT EXISTS `orders` (
      `order_number` int(11) NOT NULL AUTO_INCREMENT,
      `conducteur` varchar(100) DEFAULT NULL,
      `lieudepart` varchar(500) DEFAULT NULL,
      `lieuarrive` varchar(255) DEFAULT NULL,
      `participation` double DEFAULT NULL,
      `datedepart` datetime DEFAULT NULL,
      `datearrive` datetime DEFAULT NULL,
      `idmembre` int(11) DEFAULT NULL,
      PRIMARY KEY (`order_number`),
      KEY `fk_orders_membre_idx` (`idmembre`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    Voici la requête PDO.

    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
    $PDO = new PDO('mysql:host=localhost;dbname=philippe','root','');
    $PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
    $PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_OBJ);
     
    $lieudepart = htmlentities($_POST['lieudepart']);
    $lieuarrive = htmlentities($_POST['lieuarrive']);
    $participation = $_POST['participation'];
    $datedepart = $_POST['datedepart'];
    $datearrive = $_POST['datearrive'];
     
     
                $sql = "INSERT INTO orders (conducteur, lieudepart, lieuarrive, participation, datedepart, datearrive) VALUES (:conducteur,:lieudepart,:lieuarrive,:participation,:datedepart,:datearrive)";
     
     try {
                $req = $PDO->prepare($sql);
     
     
     
     
     
            $req->execute(array(
     
                "conducteur" => "anatta",
     
                "lieudepart" => $lieudepart,
     
                "lieuarrive" => $lieuarrive,
     
                "participation" => $participation,
     
                "datedepart" => $datedepart,
     
                "datearrive" => $datearrive
     
            ));
     
            }
            catch(PDOException $e){//Notez PDOException et pas seulement Exception
                die("Erreur d'insertion :".$e->getMessage());
            }
    IL n'y pas de PDO Exception, ni D' INSERT.

    Où est l'erreur ?

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 516
    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 516
    Par défaut
    Bonjour Phil,

    Je viens de faire un test et l'ajout a été effectué avec succès.

    Est ce que vous récupérez bien les valeurs des variables ? avez-vous fait un echo ou var_dump pour voir leurs contenus ?

  3. #3
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Merci Toufik83.
    Il y a en effet une erreure de mon appel ajax.
    En corrigeant les données, ca marche.
    Merci

  4. #4
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Voici le code.
    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
     
     $lieuDepart = "Paris";
     $lieuArrive = "Bordeaux";
     $participation = "50.0";
    try {
     
        $PDO = new PDO('mysql:host=localhost;dbname=philippe','root','');
        $PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
        $PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_OBJ);$sql = "INSERT INTO orders (conducteur, lieudepart, lieuarrive, participation) VALUES (:conducteur,:lieudepart,:lieuarrive,:participation)";
     
        $req->execute(array(
     
            "conducteur" => "anatta",
     
            "lieudepart" => $lieuDepart,
     
            "lieuarrive" => $lieuArrive,
     
            "participation" => $participation
     
        ));
     
    }
    catch(PDOException $e){//Notez PDOException et pas seulement Exception
        die("Erreur d'insertion :".$e->getMessage());
    }
    Pas d'INSERT mais message.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp64\www\Vroomvroom\EnregistrerItineraire.php on line 63
     
    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in C:\wamp64\www\Vroomvroom\EnregistrerItineraire.php on line 63
     
    execute( $bound_input_params = ['conducteur' => 'anatta', 'lieudepart' => 'Paris', 'lieuarrive' => 'Bordeaux', 'participation' => '50.0']
    Je n'avais pas mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = $PDO->prepare($sql);

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

Discussions similaires

  1. Insérer données avec champs à 0 PAR DEFAUT
    Par Philcmoi dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 19/08/2022, 06h05
  2. Entité avec champs à null retournée par Hibernate
    Par nicdo77 dans le forum Hibernate
    Réponses: 2
    Dernier message: 13/09/2007, 16h47
  3. [MySQL] Base de donnée avec champs verticaux
    Par Romain_33 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/06/2006, 16h03
  4. Réponses: 16
    Dernier message: 12/05/2006, 10h20
  5. Création de table avec Null par defaut
    Par MaitrePylos dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 15/02/2006, 09h20

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