From cad3d8c34d3205c477bd86e13e900c889f997009 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Tue, 30 Oct 2007 15:29:31 +0000 Subject: [PATCH] =?UTF-8?q?Partage=20de=20code=20dans=20les=20fonctions=20?= =?UTF-8?q?d'abstraction:=20la=20fonction=20sql=5Fserveur=20admet=20un=203?= =?UTF-8?q?e=20argument,=20bool=C3=A9en,=20permettant=20de=20ne=20pas=20d?= =?UTF-8?q?=C3=A9clencher=20d'erreur=20si=20l'instruction=20SQL=20souhait?= =?UTF-8?q?=C3=A9e=20n'est=20pas=20disponible=20(cf=20charger=5Ffonction,?= =?UTF-8?q?=20construite=20pareillement).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/base/abstract_sql.php | 54 ++++++++++++++---------------------- 1 file changed, 21 insertions(+), 33 deletions(-) diff --git a/ecrire/base/abstract_sql.php b/ecrire/base/abstract_sql.php index 9750937f2b..a8320ef019 100644 --- a/ecrire/base/abstract_sql.php +++ b/ecrire/base/abstract_sql.php @@ -21,50 +21,20 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // Cette fonction charge la description d'un serveur de base de donnees // (via la fonction spip_connect qui etablira la connexion si ce n'est fait) // et retourne la fonction produisant la requĂȘte SQL demandee -// Erreur fatale si la fonctionnalite est absente +// Erreur fatale si la fonctionnalite est absente sauf si le 3e arg <> false // http://doc.spip.org/@sql_serveur -function sql_serveur($ins_sql, $serveur='') { +function sql_serveur($ins_sql, $serveur='', $continue=false) { $desc = spip_connect($serveur); if (function_exists($f = @$desc[$ins_sql])) return $f; spip_log("Le serveur '$serveur' ne dispose pas de '$ins_sql'"); + if ($continue) return false; include_spip('inc/minipres'); echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique')); exit; } -// Dans quelques cas, l'absence de fonctionnalite ne doit pas declencher -// d'erreur fatale ==> ne pas utiliser la fonction generale - -// http://doc.spip.org/@sql_explain -function sql_explain($q, $serveur='') { - $desc = spip_connect($serveur); - if (function_exists($f = @$desc['explain'])) { - return $f($q, $serveur); - } - spip_log("Le serveur '$serveur' ne dispose pas de 'explain'"); - return false; -} - -// http://doc.spip.org/@sql_optimize -function sql_optimize($q, $serveur='') { - $desc = spip_connect($serveur); - if (function_exists($f = @$desc['optimize'])) { - return $f($q, $serveur); - } - spip_log("Le serveur '$serveur' ne dispose pas de 'optimize'"); -} - -// http://doc.spip.org/@sql_repair -function sql_repair($table, $serveur='') { - $desc = spip_connect($serveur); - if (function_exists($f = @$desc['repair'])) { - return $f($table, $serveur); - } - spip_log("Le serveur '$serveur' ne dispose pas de 'repair'"); -} - // Demande si un charset est disponible. // http://doc.spip.org/@sql_get_charset function sql_get_charset($charset, $serveur=''){ @@ -275,6 +245,24 @@ function sql_errno($serveur='') { return $f(); } +// http://doc.spip.org/@sql_explain +function sql_explain($q, $serveur='') { + $f = sql_serveur('explain', $serveur, true); + return $f ? $f($q, $serveur) : false; +} + +// http://doc.spip.org/@sql_optimize +function sql_optimize($q, $serveur='') { + $f = sql_serveur('optimize', $serveur, true); + return $f ? $f($q, $serveur) : false; +} + +// http://doc.spip.org/@sql_repair +function sql_repair($table, $serveur='') { + $f = sql_serveur('repair', $serveur, true); + return $f ? $f($q, $serveur) : false; +} + // Fonction la plus generale ... et la moins portable // A n'utiliser qu'en derniere extremite -- GitLab