Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 10h42   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 115
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 115
Points : 19
Points : 19
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 :
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();
}
totofe49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 13h31   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
J'aurais plutôt fait comme ça à ta place:
Code :
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.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h59.


 
 
 
 
Partenaires

Hébergement Web