Documentation du code de SPIP et de ses plugins

SPIP

SQL

Table of Contents

Packages

API
Reparation
Upgrade
MySQL
PostgreSQL

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

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
uses
spip_connect_main()
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
note

Version courante = 0.8

  • La version 0.8 indique un charset de connexion comme 9e arg
  • La version 0.7 indique un serveur d'authentification comme 8e arg
  • La version 0.6 indique le prefixe comme 7e arg
  • La version 0.5 indique le serveur comme 6e arg

La version 0.0 (non numerotée) doit être refaite par un admin. Les autres fonctionnent toujours, même si :

  • la version 0.1 est moins performante que la 0.2
  • la 0.2 fait un include_ecrire('inc_db_mysql.php3').
used-by
spip_connect()
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
note

L'usage comme échappement SQL est déprécié, à remplacer par sql_quote().

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
see
query_reinjecte_textes()
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
see
query_echappe_textes()
Return values
string

spip_query()

Exécute une requête sur le serveur SQL

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
note

Ne génère pas d’erreur fatale si la connexion à la BDD n’existe pas

deprecated
3.1

Pour compatibilité.

see
sql_query()

ou l'API sql_*.

Return values
bool|mixed
  • false si on ne peut pas exécuter la requête
  • indéfini sinon.

        
On this page

Search results