From d4ec8b56418bf602d06a8035cd48f1de93b9f94a Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Tue, 14 Jun 2011 11:44:11 +0000
Subject: [PATCH] =?UTF-8?q?sur=20un=20hit=20typique,=20sql=5Fserveur=20est?=
 =?UTF-8?q?=20appel=C3=A9=20environ=20800=20fois=20pour=20une=20dizaine=20?=
 =?UTF-8?q?de=20fonctions=20diff=C3=A9rentes.=20=C3=87a=20vaut=20le=20coup?=
 =?UTF-8?q?=20de=20m=C3=A9moriser=20plutot=20que=20de=20relancer=20spip=5F?=
 =?UTF-8?q?connect=5Fsql=20et=20suivants=20=C3=A0=20chaque=20demande.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/base/abstract_sql.php | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/ecrire/base/abstract_sql.php b/ecrire/base/abstract_sql.php
index 453f2e2f50..d2b3dc42e5 100644
--- a/ecrire/base/abstract_sql.php
+++ b/ecrire/base/abstract_sql.php
@@ -29,7 +29,13 @@ include_spip('base/connect_sql');
 
 // http://doc.spip.org/@sql_serveur
 function sql_serveur($ins_sql='', $serveur='', $continue=false) {
-	return spip_connect_sql(sql_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
+	static $sql_serveur = array();
+	if (!isset($sql_serveur[$serveur][$ins_sql])){
+		$f = spip_connect_sql(sql_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
+		if (!is_string($f) OR !$f) return $f;
+		$sql_serveur[$serveur][$ins_sql] = $f;
+	}
+	return $sql_serveur[$serveur][$ins_sql];
 }
 
 // Demande si un charset est disponible. 
-- 
GitLab