La fonction
sql_serveur()
permet à la fois de se connecter au serveur de base de données si ce n’est pas encore fait et d’obtenir le nom véritable de la fonction qui sera exécutée pour un traitement demandé. Cette fonction est appelée de façon transparente par des alias. Il est donc normalement inutile de l’utiliser.
sql_serveur()
admet trois paramètres dont seul le premier est indispensable :
-#
$ins_sql
est le nom de la fonction désiré dans la liste des fonctions que connait l’API tel que « select », « update », « updateq »... Volontairement vide, il indique alors à simplement se connecter au serveur de base de données si ce n’est pas encore fait.
-#
$serveur
,
-#
$continue
définit ce qui se passe lorsque l’instruction de l’API SQL n’est pas trouvée pour le gestionnaire de base de données demandée. Par défaut à
false
, le système retourne une erreur fatale, mais il est possible de poursuivre en forçant ce paramètre à la valeur
true
.
Cette fonction s’utilise de la sorte :
// calcul du nom de la fonction
$f = sql_serveur('select');
// execution de la fonction selon l'API prevue
$f($arg1, $arg2, ... );
Si on demande l’instruction
select
dans le jeu d’instruction prévu pour MySQL et présent dans le fichier
ecrire/req/mysql.php, la variable
$f
vaudra
spip_mysql_select
. La corrélation entre les l’instructions et la fonction est défini dans le même fichier par une globale
spip_mysql_functions_1
(mysql est le type de serveur, 1 est la version du jeu d’instruction).
{{{Des alias pour simplifier}}}
Pratiquement toutes les fonctions de l’API
sql_*
sont des alias calculant une fonction via
sql_serveur
et l’exécutant. Ainsi, appeler la fonction
sql_select
effectue (à quelques détails près) la même opération que le code précédent. Ce sont ces instructions là qu’il faut utiliser :
sql_select($arg1, $arg2, ...);