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 :

insertion pdo vide


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 118
    Points : 49
    Points
    49
    Par défaut insertion pdo vide
    Bonjour,
    lorsque j'execute une fonction qui permer d'insérer dans une table un formulaire via pdo il n'insère rien du tout !
    merci de votre aide

    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
     
    Array
    (
        [titre] => Quelques explications sur les données à remplir
        [id_parent] => 5
        [image] => dossier2/img_test2.jpg
        [introduction] => Insérer un contenu qui décrit en 2 lignes le sujet de votre page
        [contenu] => Insérer un contenu (texte, images, liens...), un module dynamique (annuaire, galerie d'images...)
        [date_debut] => 2011-05-14
        [date_fin] => 2011-05-08
        [auteur] => christophe chevreuil
        [id] => 
    )
     
     
    function requete_insert_db($_POST){
     
        global $DB;
        $db_table = "pages";
     
        $db_inputs = array_keys($_POST);
     
        // on créer la liste des champs à insérer
        $place_holders = "";
        $list_inputs = implode(",", $db_inputs);
        foreach($db_inputs as $input){
            $place_holders .= ':'.trim($input).',';
        }
        $place_holders = substr($place_holders,0,-1);
     
        $requete = "INSERT INTO $db_table ($list_inputs) VALUES ($place_holders)";
        $prepare = $DB->prepare($requete);
        //echo "INSERT INTO $db_table ($list_inputs) VALUES ($place_holders)";
        foreach($pArray[inputs] as $k=>$value){
            $prepare->bindParam(':'.$k, $value, getTypeParam($value));
        }
        $prepare->execute();
    }

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    J'aurais plutôt fait comme ça à ta place:
    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
     
    <?php
     
    function insert ($table, $data, PDO $pdo, $method = 'insert') {
    	// on vérifie d'abord les paramètres
     
    	// pas de table vide
    	if (empty($table))
    		throw new InvalidParameterException('Table parameter cannot be empty');
     
    	// au moins des données
    	if (empty($data))
    		return;
     
    	// une instance de PDO valide
    	if (empty($pdo))
    		throw new InvalidParameterException(__FUNCTION__ . ' require valid PDO instance');
     
    	// la méthode doit être soit insert soit replace
    	if (!in_array(strtolower($method), array('insert', 'replace')))
    		throw new InvalidParameterException("Method parameter must be either 'insert' or 'replace'");
     
    	// on construit la query avec autant de placeholders ? que d'élements dans $data et on les sépare
    	// avec des ,
        $query = "$method INTO $table VALUES (" . implode(',', array_fill(0, count($data), '?')) . ")";
     
    	// on prépare la requête
    	$statement = $pdo->prepare($query);
     
    	// on renvoie le statut d'éxecution
    	return $statement->execute(array_values($data));
    }
     
    // on utilise cette fonction ainsi
    var_dump(insert('ma_table', array('test' => 1, 'test2' => 2), $DB));
    Mes commentaires sont dans le code.

Discussions similaires

  1. Insertion chaîne vide VB 2008
    Par nanoute dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/09/2009, 16h43
  2. [AC-2003] Affichage etat (insertion ligne vide)
    Par sam79m dans le forum IHM
    Réponses: 1
    Dernier message: 10/09/2009, 09h12
  3. [MySQL] requete insert: Page vide
    Par nestam dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/07/2009, 06h50
  4. Insertion de vide impossible dans champ date!
    Par js8bleu dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/03/2008, 21h01
  5. Erreur INSERT id vide
    Par concombre dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 26/05/2006, 17h23

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