Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-04-2013 19:57:55

adloiseau
Membre
Date d'inscription: 10-01-2013
Messages: 35

[DBAL] Collection

Bonjour à tous,

J'ai besoin d’insérer une collection d'objet en base, et je procède de la façon suivante:

Code:

        $query  = "INSERT INTO {$this->kern}.ministere (";
        $query .= "  code_fonctionnel_ministere ";
        $query .= ", libelle_ministere ";
        $query .= ", millesime ";
        $query .= ") VALUES ";

        foreach ($collection as $el) {
            $query .= " (";
            $query .= "  '{$el->code_fonctionnel_ministere}'";
            $query .= ", '{$el->libelle_ministere}'";
            $query .= ", '{$el->millesime}'";
            $query .= " ) ,";
        }

        $this->connection->executeQuery($query);

Deux problèmes s’oppose à moi :

- Je dois envoyer ma requête dans une fonction avant de l'executer pour détecter le dernier objet à inserer afin de terminer ma requête par ");" et non "),".
- J'ai besoin d'echapper toutes les valeurs "$el->libelle_ministere", je pourrais faire:

Code:

            $lib = mysql_real_escape_string($el->libelle_ministere);
            $query .= ", '{$lib}'";

mais mon projet tourne sur mysql/postgres, je pourrais détecter alors sur quelle plateforme je suis, tel que :

Code:

$this->connection->getDatabasePlatform()->getName();

Je pourrais faire un switch sur le résultat.. mais tout ça ne me plait pas, alors j'en viens à vous pour savoir ce que vous me conseillé.

Hors ligne

 

#2 30-04-2013 09:39:32

Bouks
Membre
Lieu: Paris
Date d'inscription: 31-08-2012
Messages: 241

Re: [DBAL] Collection

Hello.

mysql_real_escape_string est totalement déprécié, comme les mysql_query et autres.
Utilises plutôt dans ton cas la librairie PDO, et donc, PDO:quote.

Après ta boucle tu mets simplement :

Code:

$query = substr($query,0,-1);

Le plus propre pour ces cas de figure c'est tout de même de travailler avec des implode.


22914720

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages