Subversion Repositories eFlore/Applications.cel

Rev

Rev 2419 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2419 Rev 2430
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Contient des méthodes utiles pour manipuler le SQL.
4
 * Contient des méthodes utiles pour manipuler le SQL.
5
 *
5
 *
6
 * @category   CEL
6
 * @category   CEL
7
 * @package    Scripts
7
 * @package    Scripts
8
 * @subpackage Bibliotheque
8
 * @subpackage Bibliotheque
9
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
9
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
10
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
11
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
11
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
12
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
12
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
13
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
13
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
14
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
14
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
15
 */
15
 */
16
class SqlUtil {
16
class SqlUtil {
17
 
17
 
18
	public static function extraireRequetes($contenuSql) {
18
	public static function extraireRequetes($contenuSql) {
-
 
19
		$contenuSansCommentaire = self::supprimerCommentaires($contenuSql);
19
		$requetesExtraites = preg_split("/;\e*\t*\r*\n/", $contenuSql);
20
		$requetesExtraites = preg_split("/;\e*\t*\r*\n/", $contenuSansCommentaire);
20
		if (count($requetesExtraites) == 0){
21
		if (count($requetesExtraites) == 0){
21
			throw new Exception("Aucune requête n'a été trouvée dans le fichier SQL : $cheminFichierSql");
22
			throw new Exception("Aucune requête n'a été trouvée dans le contenu SQL.");
22
		}
23
		}
23
 
24
 
24
		$requetes = array();
25
		$requetes = array();
25
		foreach ($requetesExtraites as $requete) {
26
		foreach ($requetesExtraites as $requete) {
26
			if (trim($requete) != '') {
27
			if (trim($requete) != '') {
27
				$requetes[] = rtrim(trim($requete), ';');
28
				$requetes[] = rtrim(trim($requete), ';');
28
			}
29
			}
29
		}
30
		}
30
		return $requetes;
31
		return $requetes;
31
	}
32
	}
-
 
33
 
-
 
34
	private static function supprimerCommentaires($contenuSql) {
-
 
35
		return preg_replace('/(## |--).*?\r*\n/', '', $contenuSql);
-
 
36
	}
32
}
37
}
33
38