sql_serveur

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 :

  1. $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.
  2. $serveur,
  3. $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, ...);

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français