Subversion Repositories eFlore/Applications.cel

Rev

Rev 1765 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1765 Rev 1903
Line 137... Line 137...
137
	*
137
     *
138
	* @param array $champs_etendus tableau d'objets ChampEtendu
138
     * @param array $champs_etendus tableau d'objets ChampEtendu
139
	* @return bool true si l'ajout a eu lieu
139
     * @return bool true si l'ajout a eu lieu
140
	*/
140
     */
141
	public function ajouterParLots(Array $champs_etendus) {
141
	public function ajouterParLots(Array $champs_etendus) {
-
 
142
        if(! $champs_etendus) return TRUE; // le tableau ... vide à été inséré
-
 
143
 
142
		$lignes = array();
144
		$lignes = array();
143
		foreach ($champs_etendus as $champ_etendu) {
145
		foreach ($champs_etendus as $champ_etendu) {
144
			$id = Cel::db()->proteger($champ_etendu->id);
146
			$id = Cel::db()->proteger($champ_etendu->id);
145
			$cle = Cel::db()->proteger($champ_etendu->cle);
147
			$cle = Cel::db()->proteger($champ_etendu->cle);
146
			$label = Cel::db()->proteger($champ_etendu->label);
148
			$label = Cel::db()->proteger($champ_etendu->label);
147
			$valeur = Cel::db()->proteger($champ_etendu->valeur);
149
			$valeur = Cel::db()->proteger($champ_etendu->valeur);
Line 148... Line 150...
148
 
150
 
149
			$lignes[] = "($id, $cle, $label, $valeur)";
151
			$lignes[] = "($id, $cle, $label, $valeur)";
150
		}
-
 
151
		$values = implode(',', $lignes);
-
 
152
 
-
 
153
		$requete = "INSERT INTO {$this->table_champs_etendus} ".
-
 
154
			"({$this->champ_id}, cle, label, valeur) ".
-
 
155
			"VALUES $values ".
-
 
Line 156... Line 152...
156
			"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)";
152
		}
157
 
153
 
158
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
154
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
-
 
155
		// où l'on change de sgbd
-
 
156
		$ajout = Cel::db()->executerRequeteSimple(sprintf(
-
 
157
            "INSERT INTO %s (%s, cle, label, valeur) VALUES %s ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) -- %s:%d",
-
 
158
            $this->table_champs_etendus,
-
 
159
            $this->champ_id,
159
		// où l'on change de sgbd
160
            implode(',', $lignes),
160
		$ajout = Cel::db()->executerRequeteSimple($requete);
161
            __FILE__, __LINE__));
Line 161... Line 162...
161
		return ($ajout !== false);
162
		return ($ajout !== false);
162
	}
163
	}