/** * Création des SLUGs. */ private function proceedStep2_5() { // Récupération de toutes les notices. $noeuds = $this->connexion->execute("SELECT id, name FROM ei_version_structure WHERE type != '" . EiVersionStructure::$TYPE_FONCTION . "';")->fetchAll(); $this->displayResultStep('Récupération des ' . count($noeuds) . ' éléments de versions de structures.'); // Création de la requête permettant $this->displayResultStep('Création de la requête de mise à jour...'); $requeteToUpdate = "UPDATE ei_version_structure SET slug = #{NEW_SLUG} WHERE id = #{NODE_ID};"; $requeteGlobale = array(); foreach ($noeuds as $noeud) { // Remplacement SLUG. $tmpRequete = str_replace("#{NEW_SLUG}", $this->connexion->quote(MyFunction::sluggifyForXML($noeud["name"])), $requeteToUpdate); // Remplacement ID. $tmpRequete = str_replace("#{NODE_ID}", $noeud["id"], $tmpRequete); // Ajout dans la requête globale. $requeteGlobale[] = $tmpRequete; } // Préparation de la requête. $this->displayResultStep("Préparation de la requête..."); $requete = implode(" ", $requeteGlobale); // Exécution de la requête. $this->displayResultStep("Exécution de la requête..."); if (strlen($requete) > 5) { $this->connexion->execute($requete); } // Fin. $this->displayResultStep("Processus terminé avec succès."); }
public function addWhere($field, $operator, $value) { if ($operator != "IN") { $value = $this->connection->quote($value); } $field = $this->enableFilter($field); $field = $this->getAliasedTableFromDQL($field); $this->currentQuery->andWhere("{$field} {$operator} {$value}"); AppKitLogger::verbose("Query after addWhere (%s %s %s) %s ", $field, $operator, $value, $this->currentQuery->getSqlQuery()); }
/** * @access private * Formats the value in this Filter and adds quotes if necessary * * @author Jannis Moßhammer <*****@*****.**> **/ private function formatValues(Doctrine_Connection $c) { $value = array(); if (is_array($this->value)) { foreach ($this->value as $v) { if (!is_numeric($v)) { $v = $c->quote($v, "string"); } $value[] = $c->quote($v, "decimal"); } return $value; } else { return $c->quote($this->value, "string"); } }
private function proceedStep1_5($exists = false) { if ($exists == true) { $this->displayResultStep("Récupération des noeuds fils restant à créer."); // Requête SQL permettant de récupérer les noeuds fils à créer. $reqSQL = "SELECT en.* FROM ei_node en WHERE type = 'EiDataSetTemplate' AND (SELECT COUNT(*) FROM ei_node WHERE root_id = en.id) = 0;"; $results = $this->connexion->execute($reqSQL); $noeudsFils = $results->fetchAll(); $this->displayResultStep("Il y a " . count($noeudsFils) . " noeuds fils à créer."); // Requête SQL permettant de récupérer les noeuds fils à créer. $reqSQL = "SELECT * FROM " . self::$TABLE_TEMPLATES; $results = $this->connexion->execute($reqSQL); $templatesResults = $results->fetchAll(); $templates = array(); foreach ($templatesResults as $templateResult) { $templates[$templateResult["ei_data_set_ref_id"]] = $templateResult["id"]; } $this->displayResultStep("Création des noeuds fils."); $requeteToInsert = "INSERT INTO ei_node (name, type, obj_id, project_id, project_ref, position, root_id, created_at, updated_at) " . "VALUES (#{NAME}, 'EiDataSet', #{OBJ_ID}, #{PROJECT_ID}, #{PROJECT_REF}, 1, #{ROOT_ID}, NOW(), NOW());"; $requeteToUpdate = "UPDATE ei_node SET obj_id = #{OBJ_ID} WHERE id = #{EI_NODE_ID};"; $requeteToUpdate .= "UPDATE ei_data_set SET ei_data_set_template_id = #{TEMPLATE_ID} WHERE id = #{DATA_SET_ID};"; $requeteGlobale = array(); foreach ($noeudsFils as $template) { if (isset($templates[$template["obj_id"]])) { // Remplacement NODE ID. $tmpRequete = str_replace("#{EI_NODE_ID}", $template["id"], $requeteToUpdate); // Remplacement OBJ ID. $tmpRequete = str_replace("#{OBJ_ID}", $templates[$template["obj_id"]], $tmpRequete); // Remplacement PROJECT ID. $tmpRequete = str_replace("#{PROJECT_ID}", $template["project_id"], $tmpRequete); // Remplacement PROJECT REF. $tmpRequete = str_replace("#{PROJECT_REF}", $template["project_ref"], $tmpRequete); // Remplacement TEMPLATE ID. $tmpRequete = str_replace("#{TEMPLATE_ID}", $templates[$template["obj_id"]], $tmpRequete); // Remplacement DATA SET ID. $tmpRequete = str_replace("#{DATA_SET_ID}", $template["obj_id"], $tmpRequete); // Ajout dans la requête globale. $requeteGlobale[] = $tmpRequete; // Remplacement NODE ID. $tmpRequete = str_replace("#{NAME}", $this->connexion->quote($template["name"]), $requeteToInsert); // Remplacement OBJ ID. $tmpRequete = str_replace("#{OBJ_ID}", $template["obj_id"], $tmpRequete); // Remplacement ROOT ID. $tmpRequete = str_replace("#{ROOT_ID}", $template["id"], $tmpRequete); // Remplacement PROJECT ID. $tmpRequete = str_replace("#{PROJECT_ID}", $template["project_id"], $tmpRequete); // Remplacement PROJECT REF. $tmpRequete = str_replace("#{PROJECT_REF}", $template["project_ref"], $tmpRequete); // Ajout dans la requête globale. $requeteGlobale[] = $tmpRequete; } else { $this->displayResultStep("*** Anomalie : Le template n'existe pas pour le jeu de données N°" . $template["obj_id"] . " ***"); } } // Préparation de la requête. $this->displayResultStep("Préparation de la requête..."); $requete = implode(" ", $requeteGlobale); // Exécution de la requête. $this->displayResultStep("Exécution de la requête..."); if (strlen($requete) > 5) { $this->connexion->beginTransaction(); try { while (count($requeteGlobale) > 0) { $sousRequeteGlobale = array_slice($requeteGlobale, 0, 5); $sousRequete = implode(" ", $sousRequeteGlobale); $this->connexion->execute($sousRequete); array_splice($requeteGlobale, 0, 5); } $this->connexion->commit(); } catch (Exception $exc) { $this->connexion->rollback(); throw $exc; } } // Fin. $this->displayResultStep("Processus terminé avec succès."); } else { $this->displayResultStep("Création des noeuds fils omise."); } return false; }