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 01/02/2012, 10h10   #1
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Par défaut Création de requêtes génériques avec PDO

Bonjour à tous,

Je suis occupé à réfléchir à la manière de procéder pour générer des requêtes génériques avec PDO.

Je m'explique.

J'ai 10 tables :

Table1
Table2
...

L'utilisateur pourrait choisir des informations de la table1, de la table5...

Je voudrais alors créer une requête SQL avec PDO.

Le souci, est que PDO n'accepte pas les paramètres pour les noms de tables.

Je me demandais donc si vous aviez une idée de comment je pourrais m'y prendre pour créer ce gendre de fonctionnalité.

L'idée est d'ensuite envoyer le résultat vers Excel avec PHPEXCEL.

Merci d'avance pour vos suggestions.

beegees
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 10h49   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Citation:
Envoyé par beegees Voir le message
Je voudrais alors créer une requête SQL avec PDO.

Le souci, est que PDO n'accepte pas les paramètres pour les noms de tables.
C'est simple tu passes le nom de ta table avec une variable, non ?
Comme ça tu l'insères dans la chaine SQL et le tour est joué.
Tu conserves toujours la possibilité d'utiliser PDO pour le reste du traitement.
Quelque chose comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
function dataFromTable($table, array $where = array())
{
   $sql = "SELECT * FROM $table";
   if (empty($where)) {
      // pas besoin de pdo->prepare()
 
   }
   else {
      // montage du where, binding des paramètres, PDOStatement...
 
   }
}
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/02/2012, 13h49   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 996
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 996
Points : 5 037
Points : 5 037
Hello

Voici une classe qui permet de faire ça:
- https://github.com/bdelespierre/php-...ject.class.php

Cette classe dépends de:
- https://github.com/bdelespierre/php-...base.class.php
- https://github.com/bdelespierre/php-...odel.class.php
- https://github.com/bdelespierre/php-...ator.class.php

Le constructeur de Axiom_MySQLObject prends un nom de table en premier paramètre, la structure de cette table est lue puis les requêtes CRUD sont générées on-demand à partir de cette structure.
__________________
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 actuellement 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 11h40.


 
 
 
 
Partenaires

Hébergement Web