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 valeurtrue
.
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, ...);