Subversion Repositories eFlore/Applications.cel

Rev

Rev 2419 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Contient des méthodes utiles pour manipuler le SQL.
 *
 * @category   CEL
 * @package    Scripts
 * @subpackage Bibliotheque
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
 */
class SqlUtil {

        public static function extraireRequetes($contenuSql) {
                $contenuSansCommentaire = self::supprimerCommentaires($contenuSql);
                $requetesExtraites = preg_split("/;\e*\t*\r*\n/", $contenuSansCommentaire);
                if (count($requetesExtraites) == 0){
                        throw new Exception("Aucune requête n'a été trouvée dans le contenu SQL.");
                }

                $requetes = array();
                foreach ($requetesExtraites as $requete) {
                        if (trim($requete) != '') {
                                $requetes[] = rtrim(trim($requete), ';');
                        }
                }
                return $requetes;
        }

        private static function supprimerCommentaires($contenuSql) {
                return preg_replace('/(## |--).*?\r*\n/', '', $contenuSql);
        }
}