Fichier ecrire/base/connect_sql.php

Utilitaires indispensables autour des serveurs SQL

Source

Proposer une amélioration

Liste des constantes

Valeur

  • 30

Package

Liste des fonctions

É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\''"

string _q( \num | string | array $a )

Paramètres

  1. \num | string | array $a

    Valeur à échapper

Retour

  • string

    Valeur échappée.

Package

Note

  • L'usage comme échappement SQL est déprécié, à remplacer par sql_quote().
Proposer une amélioration

On renvoi la query sans textes et les textes séparés, dans leur ordre d'apparition dans la query

array query_echappe_textes( string $query )

Paramètres

  1. string $query

Retour

  • array

Voir également

Package

Proposer une amélioration
string query_reinjecte_textes( string $query , array $textes )

Paramètres

  1. string $query
  2. array $textes

Retour

  • string

Voir également

Package

Proposer une amélioration

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.

boolean | array spip_connect( string $serveur = '' , string $version = '' )

Paramètres

  1. string $serveur = ''

    Nom du connecteur

  2. string $version = ''

    Version de l'API SQL

Retour

  • boolean | array
    • false si la connexion a échouée,
    • tableau décrivant la connexion sinon

Package

Proposer une amélioration

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.

array spip_connect_db( string $host , string $port , string $login , string $pass , string $db = '' , string $type = 'mysql' , string $prefixe = '' , string $auth = '' , string $charset = '' )

Paramètres

  1. string $host

    Adresse du serveur de base de données

  2. string $port

    Port utilisé pour la connexion

  3. string $login

    Identifiant de connexion à la base de données

  4. string $pass

    Mot de passe pour cet identifiant

  5. string $db = ''

    Nom de la base de données à utiliser

  6. string $type = 'mysql'

    Type de base de données tel que 'mysql', 'sqlite3' (cf ecrire/req/)

  7. string $prefixe = ''

    Préfixe des tables SPIP

  8. string $auth = ''

    Type d'authentification (cas si 'ldap')

  9. string $charset = ''

    Charset de la connexion SQL (optionnel)

Retour

  • array

    Description de la connexion

Package

Proposer une amélioration

Retourner le charset donnée par la table principale mais vérifier que le fichier de connexion n'est pas trop vieux

string | boolean | integer spip_connect_main( array $connexion , string $charset_sql_connexion = '' )

Paramètres

  1. array $connexion

    Description de la connexion

  2. string $charset_sql_connexion = ''

    charset de connexion fourni dans l'appal a spip_connect_db

Retour

  • string | boolean | integer
    • false si pas de charset connu pour la connexion
    • -1 charset non renseigné
    • nom du charset sinon

Utilisé par

Package

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').
Proposer une amélioration

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

array | boolean | string spip_connect_sql( string $version , string $ins = '' , string $serveur = '' , boolean $continue = false )

Paramètres

  1. string $version

    Numéro de version de l'API SQL

  2. string $ins = ''

    Instruction de l'API souhaitée, tel que 'allfetsel'

  3. string $serveur = ''

    Nom du connecteur

  4. boolean $continue = false

    true pour continuer même si le serveur SQL ou l'instruction est indisponible

Retour

  • array | boolean | 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

Package

Proposer une amélioration
void spip_sql_erreur( string $serveur = '' )

Paramètres

  1. string $serveur = ''

    Nom du connecteur de bdd utilisé

Package

Proposer une amélioration

Dépréciées

Fonction présente pour compatibilité

array spip_connect_ldap( string $serveur = '' )

Paramètres

  1. string $serveur = ''

    Nom du connecteur

Retour

  • array

Package

Deprecated

  • Utiliser l'authentification LDAP de auth/ldap
Proposer une amélioration
boolean | mixed spip_query( string $query , string $serveur = '' )

Paramètres

  1. string $query

    Texte de la requête

  2. string $serveur = ''

    Nom du connecteur pour la base de données

Retour

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

Voir également

Package

Note

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

Deprecated

  • Pour compatibilité. Utiliser sql_query() ou l'API sql_*.
Proposer une amélioration
array | string table_jointure( string $x , string $y )

Paramètres

  1. string $x

    Table de destination

  2. string $y

    Objet source

Retour

  • array | string
    • array : Description de la table de jointure si connue
    • chaîne vide si non trouvé.

Package

Deprecated

  • Utiliser l'API editer_liens ou les tables de liaisons spip_xx_liens ou spip_yy_liens selon.
Proposer une amélioration