connect_sql.php
SPIP, Système de publication pour l'internet
Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James
Ce programme est un logiciel libre distribué sous licence GNU/GPL.
Table of Contents
Constants
- _CONNECT_RETRY_DELAY = 30
Functions
- spip_connect() : bool|array<string|int, mixed>
- Connexion à un serveur de base de données
- spip_sql_erreur() : mixed
- Log la dernière erreur SQL présente sur la connexion indiquée
- spip_connect_sql() : array<string|int, mixed>|bool|string
- Retourne le nom de la fonction adaptée de l'API SQL en fonction du type de serveur
- spip_connect_db() : array<string|int, mixed>|null
- Fonction appelée par le fichier connecteur de base de données crée dans `config/` à l'installation.
- spip_connect_main() : string|bool|int
- Première connexion au serveur principal de base de données
- _q() : string
- Échappement d'une valeur sous forme de chaîne PHP
- query_echappe_textes() : array<string|int, mixed>
- Echapper les textes entre ' ' ou " " d'une requête SQL avant son pre-traitement
- query_reinjecte_textes() : string
- Réinjecter les textes d'une requete SQL à leur place initiale, après traitement de la requête
- spip_query() : bool|mixed
- Exécute une requête sur le serveur SQL
Constants
_CONNECT_RETRY_DELAY
public
mixed
_CONNECT_RETRY_DELAY
= 30
Functions
spip_connect()
Connexion à un serveur de base de données
spip_connect([string $serveur = '' ][, string $version = '' ]) : bool|array<string|int, mixed>
On charge le fichier config/$serveur
($serveur='connect'
pour le principal)
qui est censé initaliser la connexion en appelant la fonction spip_connect_db
laquelle met dans la globale db_ok
la description de la connexion.
On la mémorise dans un tableau pour permettre plusieurs serveurs.
À l'installation, il faut simuler l'existence de ce fichier.
Parameters
- $serveur : string = ''
-
Nom du connecteur
- $version : string = ''
-
Version de l'API SQL
Tags
Return values
bool|array<string|int, mixed> —- false si la connexion a échouée,
- tableau décrivant la connexion sinon
spip_sql_erreur()
Log la dernière erreur SQL présente sur la connexion indiquée
spip_sql_erreur([string $serveur = '' ]) : mixed
Parameters
- $serveur : string = ''
-
Nom du connecteur de bdd utilisé
spip_connect_sql()
Retourne le nom de la fonction adaptée de l'API SQL en fonction du type de serveur
spip_connect_sql(string $version[, string $ins = '' ][, string $serveur = '' ][, bool $continue = false ]) : array<string|int, mixed>|bool|string
Cette fonction ne doit être appelée qu'à travers la fonction sql_serveur définie dans base/abstract_sql
Elle existe en tant que gestionnaire de versions, connue seulement des convertisseurs automatiques
Parameters
- $version : string
-
Numéro de version de l'API SQL
- $ins : string = ''
-
Instruction de l'API souhaitée, tel que 'allfetsel'
- $serveur : string = ''
-
Nom du connecteur
- $continue : bool = false
-
true pour continuer même si le serveur SQL ou l'instruction est indisponible
Return values
array<string|int, mixed>|bool|string —- string : nom de la fonction à utiliser,
- false : si la connexion a échouée
- array : description de la connexion, si l'instruction sql est indisponible pour cette connexion
spip_connect_db()
Fonction appelée par le fichier connecteur de base de données crée dans `config/` à l'installation.
spip_connect_db(string $host, string $port, string $login, string $pass[, string $db = '' ][, string $type = 'mysql' ][, string $prefixe = '' ][, string $auth = '' ][, string $charset = '' ]) : array<string|int, mixed>|null
Il contient un appel direct à cette fonction avec comme arguments les identifants de connexion.
Si la connexion reussit, la globale db_ok
mémorise sa description.
C'est un tableau également retourné en valeur, pour les appels
lors de l'installation.
Parameters
- $host : string
-
Adresse du serveur de base de données
- $port : string
-
Port utilisé pour la connexion
- $login : string
-
Identifiant de connexion à la base de données
- $pass : string
-
Mot de passe pour cet identifiant
- $db : string = ''
-
Nom de la base de données à utiliser
- $type : string = 'mysql'
-
Type de base de données tel que 'mysql', 'sqlite3' (cf ecrire/req/)
- $prefixe : string = ''
-
Préfixe des tables SPIP
- $auth : string = ''
-
Type d'authentification (cas si 'ldap')
- $charset : string = ''
-
Charset de la connexion SQL (optionnel)
Return values
array<string|int, mixed>|null —Description de la connexion
spip_connect_main()
Première connexion au serveur principal de base de données
spip_connect_main(array<string|int, mixed> $connexion[, string $charset_sql_connexion = '' ]) : string|bool|int
Retourner le charset donnée par la table principale mais vérifier que le fichier de connexion n'est pas trop vieux
Parameters
- $connexion : array<string|int, mixed>
-
Description de la connexion
- $charset_sql_connexion : string = ''
-
charset de connexion fourni dans l'appal a spip_connect_db
Tags
Return values
string|bool|int —- false si pas de charset connu pour la connexion
- -1 charset non renseigné
- nom du charset sinon
_q()
Échappement d'une valeur sous forme de chaîne PHP
_q(int|float|string|array<string|int, mixed> $a) : string
Échappe une valeur (num, string, array) pour en faire une chaîne pour PHP.
Un array(1,'a',"a'")
renvoie la chaine "'1','a','a\''"
Parameters
- $a : int|float|string|array<string|int, mixed>
-
Valeur à échapper
Tags
Return values
string —Valeur échappée.
query_echappe_textes()
Echapper les textes entre ' ' ou " " d'une requête SQL avant son pre-traitement
query_echappe_textes(string $query[, mixed $uniqid = null ]) : array<string|int, mixed>
On renvoi la query sans textes et les textes séparés, dans leur ordre d'apparition dans la query
Parameters
- $query : string
- $uniqid : mixed = null
Tags
Return values
array<string|int, mixed>query_reinjecte_textes()
Réinjecter les textes d'une requete SQL à leur place initiale, après traitement de la requête
query_reinjecte_textes(string $query, array<string|int, mixed> $textes) : string
Parameters
- $query : string
- $textes : array<string|int, mixed>
Tags
Return values
stringspip_query()
Exécute une requête sur le serveur SQL
Pour compatibilité.
spip_query(string $query[, string $serveur = '' ]) : bool|mixed
Parameters
- $query : string
-
texte de la requête
- $serveur : string = ''
-
Nom du connecteur pour la base de données
Tags
Return values
bool|mixed —- false si on ne peut pas exécuter la requête
- indéfini sinon.