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 :

Créer une fonction standard d'insertion de données


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut Créer une fonction standard d'insertion de données
    Bonjour à tous,

    Pour éviter de créer une multitude de fonctions paramétrées, j'essaye de développer une fonction standard. Je bute sur l'écriture du tableau à mettre en paramètre de la fonction execute().
    Voici mon code dans son état actuel. L'argument $post correspond au contenu nettoyé et contrôlé du formulaire.
    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
    function insertIntoTable($table, $post) {
    	$db = dbConnect();
     
    	//var_dump($post);
    	$aCols	= [];
    	$aParams= [];
    	//$aData	= [];
    	foreach($post as $key=>$value) {
    		var_dump($key, $value);
    		$aCols[]		= $key;
    		$aParams[]		= ':'.$key;
    		//$aData[':'.$key]= $key;
    	}
    	$sCols	= implode(',', $aCols);
    	$sParams= implode(',', $aParams);
    	var_dump($sCols);
    	var_dump($sParams);
    	//var_dump($aData);
     
    	$sql = <<<SQL
    		INSERT IGNORE INTO $table ($sCols)
    		VALUES($sParams)
    SQL;
    	$stmt = $db->prepare($sql);
    	//$stmt->execute(); // ajouter paramètres
    	return $stmt->rowCount();
    }

  2. #2
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    Pour moi il faut créer un 3ème tableau à passer en paramètre de "execute()".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $aCols	= [];
    $aParams= [];
    $executeParams= [];
    foreach($post as $key=>$value) {
        var_dump($key, $value);
        $aCols[]		= $key;
        $aParams[]		= ':'.$key;
        //$aData[':'.$key]= $key;
     
        $executeParams[':'.$key] = $value;
    }
    Voilà...
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

Discussions similaires

  1. [XL-2013] Créer une fonction qui permet de compter des données complexe.
    Par RabiK33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/04/2016, 11h58
  2. [XL-2007] Créer une fonction pour importer une donnée du web
    Par tomatotep dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/02/2016, 18h41
  3. Réponses: 3
    Dernier message: 23/05/2012, 15h03
  4. [XL-2003] Créer une fonction avec plage de données
    Par coklin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/12/2009, 13h01
  5. créer une fonction insert/update
    Par pitchounette13 dans le forum Débuter
    Réponses: 10
    Dernier message: 03/07/2008, 14h25

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