Valider ee211c69 rédigé par esj's avatar esj
Parcourir les fichiers

Mise au carré des noms des fonctions d'abstraction sur bases de données et de...

Mise au carré des noms des fonctions d'abstraction sur bases de données et de leur moment d'appel (on assure que la connexion au serveur a été tentée, sinon réussi).
parent 7af2c23d
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+39 −42
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -12,6 +12,35 @@

if (!defined("_ECRIRE_INC_VERSION")) return;

// Chargement a la volee de la description d'un serveur de base de donnees

// http://doc.spip.org/@spip_abstract_serveur
function spip_abstract_serveur($ins_sql, $serveur) {

  // le serveur par defaut est indique par spip_connect
  // qui etablira la premiere connexion si ce n'est fait.
	if (!$serveur) {
		if (spip_connect())
			$f = 'spip_mysql_' . $ins_sql;
		  else $f = '';
	} else {
	  // c'est un autre; s'y connecter si ce n'est fait
		$f = 'spip_' . $serveur . '_' . $ins_sql;
		if (function_exists($f)) return $f;

		$d = find_in_path('inc_connect-' . $serveur . '.php');
		if (@file_exists($d))
			include($d);
		else spip_log("pas de fichier $d pour decrire le serveur '$serveur'");
	}
	if (function_exists($f)) return $f;

	erreur_squelette(" $f " ._T('zbug_serveur_indefini'), $serveur);

	// hack pour continuer la chasse aux erreurs
	return 'spip_log';
}

// Cette fonction est systematiquement appelee par les squelettes
// pour constuire une requete SQL de type "lecture" (SELECT) a partir
// de chaque boucle.
@@ -39,44 +68,16 @@ function spip_abstract_select (
	$sousrequete = '', $having = array(),
	$table = '', $id = '', $serveur='') {

	if (!$serveur)
	  // le serveur par defaut est celui defini dans inc_connect.php
	  { spip_connect();
	    $f = 'spip_mysql_select';
	  }
	else {
	  // c'est un autre; le charger si ce n'est fait
	$f = spip_abstract_serveur('select', $serveur);
	}

	return $f($select, $from, $where,
		  $groupby, $orderby, $limit,
		  $sousrequete, $having,
		  $table, $id, $serveur);
}

// Chargement a la volee de la description d'un serveur de base de donnees

// http://doc.spip.org/@spip_abstract_serveur
function spip_abstract_serveur($ins_sql, $serveur) {
	$f = 'spip_' . $serveur . '_' . $ins_sql;
	if (function_exists($f)) return $f;

	$d = find_in_path('inc_connect-' . $serveur . '.php');
	if (@file_exists($d))
		include($d);
	else spip_log("pas de fichier $d pour decrire le serveur '$serveur'");

	if (function_exists($f)) return $f;

	erreur_squelette(" $f " ._T('zbug_serveur_indefini'), $serveur);

	// hack pour continuer la chasse aux erreurs
	return 'spip_log';
}

// http://doc.spip.org/@spip_abstract_fetch
function spip_abstract_fetch($res, $serveur='') {
	if (!$serveur) return spip_fetch_array($res, SPIP_ASSOC);
	$f = spip_abstract_serveur('fetch', $serveur);
	return $f($res);
}
@@ -84,7 +85,6 @@ function spip_abstract_fetch($res, $serveur='') {
// http://doc.spip.org/@spip_abstract_count
function spip_abstract_count($res, $serveur='')
{
  if (!$serveur) return spip_num_rows($res);
	$f = spip_abstract_serveur('count', $serveur);
	return $f($res);
}
@@ -92,7 +92,6 @@ function spip_abstract_count($res, $serveur='')
// http://doc.spip.org/@spip_abstract_free
function spip_abstract_free($res, $serveur='')
{
  if (!$serveur) return spip_free_result($res);
	$f = spip_abstract_serveur('free', $serveur);
	return $f($res);
}
@@ -100,8 +99,7 @@ function spip_abstract_free($res, $serveur='')
// http://doc.spip.org/@spip_abstract_insert
function spip_abstract_insert($table, $noms, $valeurs, $serveur='')
{
  $f = (!$serveur ? 'spip_mysql_insert' :
	spip_abstract_serveur('insert', $serveur));
	$f = spip_abstract_serveur('insert', $serveur);
	return $f($table, $noms, $valeurs);
}

@@ -114,8 +112,7 @@ function spip_abstract_showtable($table, $serveur='', $table_spip = false)
		$table = preg_replace('/^spip_/', $table_pref, $table);
	}
	
  $f = (!$serveur ? 'spip_mysql_showtable' :
	spip_abstract_serveur('showtable', $serveur));
	$f = spip_abstract_serveur('showtable', $serveur);
	return $f($table);
}

+20 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -276,6 +276,12 @@ function spip_mysql_showtable($nom_table)
// Recuperation des resultats
//

// interface de abstract_sql.

function spip_mysql_fetch($r, $t=SPIP_ASSOC) {
	if ($r) return mysql_fetch_array($r, $t);
}

// http://doc.spip.org/@spip_fetch_array
function spip_fetch_array($r, $t=SPIP_ASSOC) {
	if ($r) return mysql_fetch_array($r, $t);
@@ -291,16 +297,26 @@ function spip_sql_errno() {
	return mysql_errno();
}

// Interface de abstract_sql
function spip_mysql_count($r) {
	if ($r)	return mysql_num_rows($r);
}

// http://doc.spip.org/@spip_num_rows
function spip_num_rows($r) {
	if ($r)
		return mysql_num_rows($r);
	if ($r)	return mysql_num_rows($r);
}

// Interface de abstract_sql (on est sur de l'argument, c'est le compilateur)

function spip_mysql_free($r) {
	return mysql_free_result($r);
}

// Vieux nom a laisser tomber
// http://doc.spip.org/@spip_free_result
function spip_free_result($r) {
	if ($r)
		return mysql_free_result($r);
	if ($r)	return mysql_free_result($r);
}

// http://doc.spip.org/@spip_mysql_insert