Documentation du code de SPIP et de ses plugins

SPIP

abstract_sql.php

Definition de l'API SQL

Ce fichier definit la couche d'abstraction entre SPIP et ses serveurs SQL. Cette version 1 est un ensemble de fonctions ecrites rapidement pour generaliser le code strictement MySQL de SPIP <= 1.9.2 Des retouches sont a prevoir apres l'experience des premiers portages. Les symboles sql_* (constantes et nom de fonctions) sont reserves a cette interface, sans quoi le gestionnaire de version dysfonctionnera.

Tags
version
1

Table of Contents

Constants

SQL_ABSTRACT_VERSION  = 1
Version de l'API SQL

Functions

sql_error_backtrace()  : array<string|int, mixed>|string
Retourne la pile de fonctions utilisée lors de la précence d'une erreur SQL
sql_get_charset()  : string|bool
Demande si un charset est disponible
sql_set_charset()  : bool
Regler le codage de connexion
sql_select()  : mixed
Effectue une requête de selection
sql_get_select()  : mixed
Recupere la syntaxe de la requete select sans l'executer
sql_countsel()  : int|bool
Retourne le nombre de lignes d'une sélection
sql_alter()  : mixed
Modifie la structure de la base de données
sql_fetch()  : array<string|int, mixed>|false
Retourne un enregistrement d'une selection
sql_fetch_all()  : array<string|int, mixed>
Retourne tous les enregistrements d'une selection
sql_seek()  : bool
Déplace le pointeur d'une ressource de sélection
sql_listdbs()  : array<string|int, mixed>|bool
Liste des bases de donnees accessibles
sql_selectdb()  : bool|string
Demande d'utiliser d'une base de donnees
sql_count()  : bool|string
Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`
sql_free()  : bool
Libère une ressource de résultat
sql_insert()  : bool|string
Insère une ligne dans une table
sql_insertq()  : int|bool|string
Insère une ligne dans une table
sql_insertq_multi()  : bool|string
Insère plusieurs lignes d'un coup dans une table
sql_update()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL
sql_updateq()  : bool|string
Met à jour du contenu d’une table SQL
sql_delete()  : bool|string
Supprime des enregistrements d'une table
sql_replace()  : bool|string
Insère où met à jour une entrée d’une table SQL
sql_replace_multi()  : bool|string
Insère où met à jour des entrées d’une table SQL
sql_drop_table()  : bool|string
Supprime une table SQL (structure et données)
sql_drop_view()  : bool|string
Supprime une vue SQL
sql_showbase()  : object|bool|string
Retourne une ressource de la liste des tables de la base de données
sql_alltable()  : array<string|int, mixed>
Retourne la liste des tables SQL
sql_showtable()  : bool|array<string|int, mixed>
Retourne la liste (et description) des colonnes et key d’une table SQL
sql_table_exists()  : bool|string
Teste si une table SQL existe ou non dans la base
sql_create()  : bool
Crée une table dans la base de données
sql_create_base()  : bool
Crée une base de données
sql_create_view()  : bool|string
Crée une vue SQL
sql_multi()  : string
Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée
sql_error()  : bool|string
Retourne la dernière erreur connue
sql_errno()  : bool|int
Retourne le numéro de la derniere erreur connue
sql_explain()  : array<string|int, mixed>|false
Retourne une explication de requête (Explain) SQL
sql_optimize()  : bool
Optimise une table SQL
sql_repair()  : bool|string
Répare une table SQL
sql_query()  : array<string|int, mixed>|resource|string|bool
Exécute une requête SQL
sql_fetsel()  : array<string|int, mixed>|string|false
Retourne la première ligne d'une sélection
sql_allfetsel()  : array<string|int, mixed>
Retourne le tableau de toutes les lignes d'une selection
sql_getfetsel()  : mixed
Retourne un unique champ d'une selection
sql_version()  : string
Retourne le numero de version du serveur SQL
sql_preferer_transaction()  : bool
Informe si le moteur SQL prefere utiliser des transactions
sql_demarrer_transaction()  : bool
Démarre une transaction
sql_terminer_transaction()  : bool
Termine une transaction
sql_hex()  : string
Prépare une chaine hexadécimale
sql_quote()  : string
Echapper du contenu
sql_date_proche()  : string|bool
Tester si une date est proche de la valeur d'un champ
sql_in_quote()  : string
Retourne une expression IN pour le gestionnaire de base de données
sql_in()  : mixed
shorthand historique qui ne permet pas de specifier le type et qui accepte une string pour $valeurs
sql_in_select()  : string
Retourne une expression IN pour le gestionnaire de base de données à partir d'une sélection de données
sql_skip()  : int
Implémentation sécurisée du saut en avant.
sql_test_int()  : bool
Teste qu'une description de champ SQL est de type entier
sql_test_date()  : bool
Teste qu'une description de champ SQL est de type entier
sql_format_date()  : string
Formate une date
prefixer_table_spip()  : string
Corrige le nom d’une table SQL en utilisant le bon préfixe

Constants

SQL_ABSTRACT_VERSION

Version de l'API SQL

public mixed SQL_ABSTRACT_VERSION = 1

Functions

sql_error_backtrace()

Retourne la pile de fonctions utilisée lors de la précence d'une erreur SQL

sql_error_backtrace([bool $compil_info = false ]) : array<string|int, mixed>|string
Parameters
$compil_info : bool = false
  • false : Retourne un texte présentant les fonctions utilisées
  • true : retourne un tableau indiquant un contexte de compilation à l'origine de la requête, utile pour présenter une erreur au débuggueur via erreur_squelette()
Tags
note

Ignore les fonctions include_once, include_spip, find_in_path

used-by
spip_mysql_error()
used-by
spip_sqlite_error()
Return values
array<string|int, mixed>|string

contexte de l'erreur

sql_get_charset()

Demande si un charset est disponible

sql_get_charset(string $charset[, string $serveur = '' ][, bool $option = true ]) : string|bool

Demande si un charset (tel que utf-8) est disponible sur le gestionnaire de base de données de la connexion utilisée

Parameters
$charset : string

Le charset souhaité

$serveur : string = ''

Le nom du connecteur

$option : bool = true

Inutilise

Tags
see
sql_set_charset()

pour utiliser un charset

Return values
string|bool

Retourne le nom du charset si effectivement trouvé, sinon false.

sql_set_charset()

Regler le codage de connexion

sql_set_charset(string $charset[, string $serveur = '' ][, bool|string $option = true ]) : bool

Affecte un charset (tel que utf-8) sur la connexion utilisee avec le gestionnaire de base de donnees

Parameters
$charset : string

Le charset souhaite

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
Tags
see
sql_get_charset()

pour tester l'utilisation d'un charset

Return values
bool

Retourne true si elle reussie.

sql_select()

Effectue une requête de selection

sql_select([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : mixed

Fonction de selection (SELECT), retournant la ressource interrogeable par sql_fetch.

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • false -> ne pas l'exécuter mais la retourner,
  • continue -> ne pas echouer en cas de serveur sql indisponible,
  • true|array -> executer la requête. Le cas array est, pour une requete produite par le compilateur, un tableau donnnant le contexte afin d'indiquer le lieu de l'erreur au besoin
Tags
see
sql_fetch()

Pour boucler sur les resultats de cette fonction

used-by
sql_get_select()
used-by
sql_fetsel()
used-by
sql_allfetsel()
Return values
mixed

Ressource SQL

- Ressource SQL pour sql_fetch, si la requete est correcte
- false en cas d'erreur
- Chaine contenant la requete avec $option=false

Retourne false en cas d'erreur, apres l'avoir denoncee. Les portages doivent retourner la requete elle-meme en cas d'erreur, afin de disposer du texte brut.

sql_get_select()

Recupere la syntaxe de la requete select sans l'executer

sql_get_select([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ]) : mixed

Passe simplement $option a false au lieu de true sans obliger a renseigner tous les arguments de sql_select. Les autres parametres sont identiques.

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

Tags
uses
sql_select()
Return values
mixed

Chaine contenant la requete ou false en cas d'erreur

sql_countsel()

Retourne le nombre de lignes d'une sélection

sql_countsel([array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : int|bool

Ramène seulement et tout de suite le nombre de lignes Pas de colonne ni de tri à donner donc.

Parameters
$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • false -> ne pas l'executer mais la retourner,
  • continue -> ne pas echouer en cas de serveur sql indisponible,
  • true -> executer la requete.
Tags
see
sql_count()
example
if (sql_countsel('spip_mots_liens', array(
    "objet=".sql_quote('article'),
    "id_article=".sql_quote($id_article)) > 0) {
        // ...
}
Return values
int|bool
  • Nombre de lignes de resultat
  • ou false en cas d'erreur

sql_alter()

Modifie la structure de la base de données

sql_alter(string $q[, string $serveur = '' ][, bool|string $option = true ]) : mixed

Effectue une opération ALTER.

Parameters
$q : string

La requête à exécuter (sans la préceder de 'ALTER ')

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 2 valeurs :

  • true : exécuter la requete
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
example
sql_alter('DROP COLUMN supprimer');
Return values
mixed

2 possibilités :

  • Incertain en cas d'exécution correcte de la requête
  • false en cas de serveur indiponible ou d'erreur

Ce retour n'est pas pertinent pour savoir si l'opération est correctement réalisée.

sql_fetch()

Retourne un enregistrement d'une selection

sql_fetch(mixed $res[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|false

Retourne un resultat d'une ressource obtenue avec sql_select()

Parameters
$res : mixed

Ressource retournee par sql_select()

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>|false

Tableau de cles (colonnes SQL ou alias) / valeurs (valeurs dans la colonne de la table ou calculee) presentant une ligne de resultat d'une selection

sql_fetch_all()

Retourne tous les enregistrements d'une selection

sql_fetch_all(mixed $res[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>

Retourne tous les resultats d'une ressource obtenue avec sql_select() dans un tableau

Parameters
$res : mixed

Ressource retournee par sql_select()

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>

Tableau contenant les enregistrements. Chaque entree du tableau est un autre tableau de cles (colonnes SQL ou alias) / valeurs (valeurs dans la colonne de la table ou calculee) presentant une ligne de resultat d'une selection

sql_seek()

Déplace le pointeur d'une ressource de sélection

sql_seek(mixed $res, int $row_number[, string $serveur = '' ][, bool|string $option = true ]) : bool

Deplace le pointeur sur un numéro de ligne précisé sur une ressource issue de sql_select, afin que le prochain sql_fetch récupère cette ligne.

Parameters
$res : mixed

Ressource issue de sql_select

$row_number : int

Numero de ligne sur laquelle placer le pointeur

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Tags
see
sql_skip()

Pour sauter des enregistrements

Return values
bool

Operation effectuée (true), sinon false.

sql_listdbs()

Liste des bases de donnees accessibles

sql_listdbs([string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|bool

Retourne un tableau du nom de toutes les bases de donnees accessibles avec les permissions de l'utilisateur SQL de cette connexion. Attention on n'a pas toujours les droits !

Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>|bool

Tableau contenant chaque nom de base de donnees. False en cas d'erreur.

sql_selectdb()

Demande d'utiliser d'une base de donnees

sql_selectdb(string $nom[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$nom : string

Nom de la base a utiliser

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
bool|string
  • True ou nom de la base en cas de success.
  • False en cas d'erreur.

sql_count()

Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`

sql_count(object $res[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$res : object

Ressource SQL

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Tags
see
sql_select()
see
sql_countsel()
Return values
bool|string
  • int Nombre de lignes,
  • false en cas d'erreur.

sql_free()

Libère une ressource de résultat

sql_free(object $res[, string $serveur = '' ][, bool|string $option = true ]) : bool

Indique au gestionnaire SQL de libérer de sa mémoire la ressoucre de résultat indiquée car on n'a plus besoin de l'utiliser.

Parameters
$res : object

Ressource de résultat

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> exécuter la requete
  • continue -> ne pas échouer en cas de serveur SQL indisponible
Return values
bool

True si réussi

sql_insert()

Insère une ligne dans une table

sql_insert(string $table, string $noms, string $valeurs[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$noms : string

Liste des colonnes impactées,

$valeurs : string

Liste des valeurs,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_insertq()
see
sql_quote()
note

Cette fonction ne garantit pas une portabilité totale, et n'est là que pour faciliter des migrations de vieux scripts. Préférer sql_insertq.

Return values
bool|string
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • False en cas d'erreur.

sql_insertq()

Insère une ligne dans une table

sql_insertq(string $table[, array<string|int, mixed> $couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : int|bool|string

Protègera chaque valeur comme sql_quote.

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed> = []

Tableau (nom => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_insert()
see
sql_insertq_multi()
see
sql_quote()
see
objet_inserer()
example
$titre = _request('titre');
$id = sql_insertq('spip_rubriques', array('titre' => $titre));
used-by
objet_inserer()
Return values
int|bool|string
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • False en cas d'erreur.

sql_insertq_multi()

Insère plusieurs lignes d'un coup dans une table

sql_insertq_multi(string $table[, array<string|int, mixed> $couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

Insère en une opération plusieurs éléments au schéma identique dans une table de la base de données. Lorsque les portages le permettent, ils utilisent une seule requête SQL pour réaliser l’ajout.

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed> = []

Tableau de tableaux associatifs (nom => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_insertq()
Return values
bool|string
  • true en cas de succès,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_update()

Met à jour des enregistrements d'une table SQL

sql_update(string $table, array<string|int, mixed> $exp[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|bool|string

Les valeurs ne sont pas échappées, ce qui permet de modifier une colonne en utilisant la valeur d'une autre colonne ou une expression SQL.

Il faut alors protéger avec sql_quote() manuellement les valeurs qui en ont besoin.

Dans les autres cas, préférer sql_updateq().

Parameters
$table : string

Nom de la table

$exp : array<string|int, mixed>

Couples (colonne => valeur)

$where : string|array<string|int, mixed> = ''

Conditions a remplir (Where)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_updateq()
Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si demandé
  • true si la requête a réussie, false sinon
  • array Tableau décrivant la requête et son temps d'exécution si var_profile est actif

sql_updateq()

Met à jour du contenu d’une table SQL

sql_updateq(string $table, array<string|int, mixed> $exp[, array<string|int, mixed>|string $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

Le contenu transmis à la fonction est protégé automatiquement comme sql_quote().

Parameters
$table : string

Nom de la table SQL

$exp : array<string|int, mixed>

Couples (colonne => valeur)

$where : array<string|int, mixed>|string = ''

Conditions à vérifier

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_quote()
see
sql_update()
example
sql_updateq('table', array('colonne' => $valeur), 'id_table=' . intval($id_table));
sql_updateq("spip_auteurs", array("statut" => '6forum'), "id_auteur=$id_auteur") ;
note

sql_update() est presque toujours appelée sur des constantes ou des dates Cette fonction (sql_updateq) est donc plus utile que la précédente, d'autant qu'elle permet de gerer les différences de représentation des constantes.

Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_delete()

Supprime des enregistrements d'une table

sql_delete(string $table[, string|array<string|int, mixed> $where = '' ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$where : string|array<string|int, mixed> = ''

Conditions à vérifier

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
example
sql_delete('spip_articles', 'id_article='.sql_quote($id_article));
Return values
bool|string
  • int : nombre de suppressions réalisées,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_replace()

Insère où met à jour une entrée d’une table SQL

sql_replace(string $table, array<string|int, mixed> $couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférez sql_insertq() et sql_updateq().

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed>

Couples colonne / valeur à modifier,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_insertq()
see
sql_updateq()
Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_replace_multi()

Insère où met à jour des entrées d’une table SQL

sql_replace_multi(string $table, array<string|int, mixed> $tab_couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférez sql_insertq_multi() et sql_updateq().

Parameters
$table : string

Nom de la table SQL

$tab_couples : array<string|int, mixed>

Tableau de tableau (colonne / valeur à modifier),

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_insertq_multi()
see
sql_updateq()
see
sql_replace()
Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_drop_table()

Supprime une table SQL (structure et données)

sql_drop_table(string $table[, bool $exist = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table

$exist : bool = false

true pour ajouter un test sur l'existence de la table, false sinon

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_create()
see
sql_drop_view()
Return values
bool|string
  • true en cas de succès,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_drop_view()

Supprime une vue SQL

sql_drop_view(string $table[, bool $exist = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la vue SQL

$exist : bool = false

True pour ajouter un test d'existence avant de supprimer

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_create_view()
see
sql_drop_table()
Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

sql_showbase()

Retourne une ressource de la liste des tables de la base de données

sql_showbase([string $spip = null ][, string $serveur = '' ][, bool|string $option = true ]) : object|bool|string
Parameters
$spip : string = null

Filtre sur tables retournées

  • NULL : retourne les tables SPIP uniquement (tables préfixées avec le préfixe de la connexion)
  • '%' : retourne toutes les tables de la base
$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false -> ne pas l'executer mais la retourner,
  • continue -> ne pas echouer en cas de serveur sql indisponible,
  • true -> executer la requete.
Tags
see
sql_alltable()
used-by
sql_alltable()
Return values
object|bool|string

Ressource à utiliser avec sql_fetch()

sql_alltable()

Retourne la liste des tables SQL

sql_alltable([string $spip = null ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>
Parameters
$spip : string = null

Filtre sur tables retournées

  • NULL : retourne les tables SPIP uniquement (tables préfixées avec le préfixe de la connexion)
  • '%' : retourne toutes les tables de la base
$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false -> ne pas l'executer mais la retourner,
  • continue -> ne pas echouer en cas de serveur sql indisponible,
  • true -> executer la requete.
Tags
uses
sql_showbase()
Return values
array<string|int, mixed>

Liste des tables SQL

sql_showtable()

Retourne la liste (et description) des colonnes et key d’une table SQL

sql_showtable(string $table[, bool $table_spip = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool|array<string|int, mixed>
Parameters
$table : string

Nom de la table SQL

$table_spip : bool = false

true pour remplacer automatiquement « spip » par le vrai préfixe de table

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • 'continue' : ne pas échouer en cas de serveur SQL indisponible,
  • true : exécuter la requete.
Tags
note

Dans la plupart des situations, il vaut mieux utiliser directement la fonction trouver_table() qui possède un cache.

see
base_trouver_table_dist()
Return values
bool|array<string|int, mixed>
  • false en cas d'echec
  • sinon array : Tableau avec
    • 'field' => array(colonne => description)
    • 'key' => array(type => key)
    • 'join' => array() // jointures, si déclarées.

sql_table_exists()

Teste si une table SQL existe ou non dans la base

sql_table_exists(string $table[, bool $table_spip = true ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table

$table_spip : bool = true

true pour remplacer automatiquement « spip » par le vrai préfixe de table

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Return values
bool|string
  • true si la table existe,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_create()

Crée une table dans la base de données

sql_create(string $nom, array<string|int, mixed> $champs[, array<string|int, mixed> $cles = [] ][, bool $autoinc = false ][, bool $temporary = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$nom : string

Nom de la table

$champs : array<string|int, mixed>

Couples (colonne => description)

$cles : array<string|int, mixed> = []

Clé (nomdelaclef => champ)

$autoinc : bool = false

Si un champ est clef primaire est numérique alors la propriété d’autoincrémentation sera ajoutée

$temporary : bool = false

true pour créer une table temporaire (au sens SQL)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • 'continue' : ne pas échouer en cas de serveur SQL indisponible,
  • true : exécuter la requete.
Tags
example
sql_create("spip_tables",
  array(
      "id_table" => "bigint(20) NOT NULL default '0'",
      "colonne1"=> "varchar(3) NOT NULL default 'oui'",
      "colonne2"=> "text NOT NULL default ''"
   ),
   array(
      'PRIMARY KEY' => "id_table",
      'KEY colonne1' => "colonne1"
   )
);
Return values
bool

true si succès, false en cas d'echec

sql_create_base()

Crée une base de données

sql_create_base(string $nom[, string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$nom : string

Nom de la base (sans l'extension de fichier si gestionnaire SQLite)

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Return values
bool

true si la base est créee.

sql_create_view()

Crée une vue SQL

sql_create_view(string $nom, string $select_query[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$nom : string

Nom de la vue

$select_query : string

Une requête SELECT, idéalement crée avec sql_get_select(...)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
see
sql_drop_view()
see
sql_create()
see
sql_get_select()

Pour obtenir le texte de la requête SELECT pour créer la vue.

Return values
bool|string
  • true si succès,
  • texte de la requête si demandé
  • false en cas d'échec.

sql_multi()

Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée

sql_multi(string $sel, string $lang[, string $serveur = '' ][, bool|string $option = true ]) : string

Cette sélection est mise dans l'alias multi (instruction AS multi).

Parameters
$sel : string

Colonne ayant le texte

$lang : string

Langue à extraire

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
example
$t = sql_multi('chapo', 'fr');
Return values
string

texte de sélection pour la requête

sql_error()

Retourne la dernière erreur connue

sql_error([string $serveur = '' ]) : bool|string
Parameters
$serveur : string = ''

Nom du connecteur

Return values
bool|string

Description de l'erreur False si le serveur est indisponible

sql_errno()

Retourne le numéro de la derniere erreur connue

sql_errno([string $serveur = '' ]) : bool|int
Parameters
$serveur : string = ''

Nom du connecteur

Return values
bool|int

Numéro de l'erreur False si le serveur est indisponible

sql_explain()

Retourne une explication de requête (Explain) SQL

sql_explain(string $q[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|false
Parameters
$q : string

texte de la requête

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>|false

Tableau de l'explication

sql_optimize()

Optimise une table SQL

sql_optimize(string $table[, string $serveur = '' ][, bool $option = true ]) : bool
Parameters
$table : string

Nom de la table

$serveur : string = ''

Nom de la connexion

$option : bool = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Return values
bool

Toujours true

sql_repair()

Répare une table SQL

sql_repair(string $table[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Return values
bool|string
  • string texte de la requête si demandée,
  • true si la requête a réussie, false sinon

sql_query()

Exécute une requête SQL

sql_query(string $ins[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|resource|string|bool

Fonction la plus générale ... et la moins portable À n'utiliser qu'en dernière extrémité

Parameters
$ins : string

Requête

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>|resource|string|bool
  • string : texte de la requête si on ne l'exécute pas
  • ressource|bool : Si requête exécutée
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

sql_fetsel()

Retourne la première ligne d'une sélection

sql_fetsel([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|string|false

Retourne la première ligne de résultat d'une sélection comme si l'on appelait successivement sql_select() puis sql_fetch()

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • true -> executer la requete.
  • continue -> ne pas echouer en cas de serveur sql indisponible.
  • false -> ne pas l'executer mais la retourner.
Tags
example
$art = sql_fetsel(array('id_rubrique','id_secteur'), 'spip_articles', 'id_article='.sql_quote($id_article));
$id_rubrique = $art['id_rubrique'];
uses
sql_select()
uses
sql_fetch()
see
sql_getfetsel()
used-by
sql_getfetsel()
Return values
array<string|int, mixed>|string|false

Tableau de la premiere ligne de resultat de la selection tel que array('id_rubrique' => 1, 'id_secteur' => 2)

sql_allfetsel()

Retourne le tableau de toutes les lignes d'une selection

sql_allfetsel([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>

Retourne toutes les lignes de resultat d'une selection comme si l'on appelait successivement sql_select() puis while(sql_fetch())

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • true -> executer la requete.
  • continue -> ne pas echouer en cas de serveur sql indisponible.
  • false -> ne pas l'executer mais la retourner.
Tags
example
$rubs = sql_allfetsel('id_rubrique', 'spip_articles', 'id_secteur='.sql_quote($id_secteur));
// $rubs = array(array('id_rubrique'=>1), array('id_rubrique'=>3, ...)
uses
sql_select()
uses
sql_fetch()
Return values
array<string|int, mixed>

Tableau de toutes les lignes de resultat de la selection Chaque entree contient un tableau des elements demandees dans le SELECT.

array(
  array('id_rubrique' => 1, 'id_secteur' => 2)
  array('id_rubrique' => 4, 'id_secteur' => 2)
  ...
)

sql_getfetsel()

Retourne un unique champ d'une selection

sql_getfetsel(array<string|int, mixed>|string $select[, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : mixed

Retourne dans la premiere ligne de resultat d'une selection un unique champ demande

Parameters
$select : array<string|int, mixed>|string

Liste des champs à récupérer (Select)

$from : array<string|int, mixed>|string = []

Tables à consulter (From)

$where : array<string|int, mixed>|string = []

Conditions à remplir (Where)

$groupby : array<string|int, mixed>|string = []

Critère de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

Critère de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicité (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • true -> executer la requete.
  • continue -> ne pas echouer en cas de serveur sql indisponible.
  • false -> ne pas l'executer mais la retourner.
Tags
example
$id_rubrique = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article='.sql_quote($id_article));
uses
sql_fetsel()
Return values
mixed

Contenu de l'unique valeur demandee du premier enregistrement retourne ou NULL si la requete ne retourne aucun enregistrement

sql_version()

Retourne le numero de version du serveur SQL

sql_version([string $serveur = '' ][, bool|string $option = true ]) : string
Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
Return values
string

Numero de version du serveur SQL

sql_preferer_transaction()

Informe si le moteur SQL prefere utiliser des transactions

sql_preferer_transaction([string $serveur = '' ][, bool|string $option = true ]) : bool

Cette fonction experimentale est pour l'instant presente pour accelerer certaines insertions multiples en SQLite, en les encadrant d'une transaction. SQLite ne cree alors qu'un verrou pour l'ensemble des insertions et non un pour chaque, ce qui accelere grandement le processus. Evidemment, si une des insertions echoue, rien ne sera enregistre. Pour ne pas perturber les autres moteurs, cette fonction permet de verifier que le moteur prefere utiliser des transactions dans ce cas.

Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
Tags
example
if (sql_preferer_transaction()) {
  sql_demarrer_transaction();
}
see
sql_demarrer_transaction()
see
sql_terminer_transaction()
Return values
bool

Le serveur SQL prefere t'il des transactions pour les insertions multiples ?

sql_demarrer_transaction()

Démarre une transaction

sql_demarrer_transaction([string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
  • false pour obtenir le code de la requete
Tags
see
sql_terminer_transaction()

Pour cloturer la transaction

Return values
bool

true si la transaction est demarree false en cas d'erreur

sql_terminer_transaction()

Termine une transaction

sql_terminer_transaction([string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
  • false pour obtenir le code de la requete
Tags
see
sql_demarrer_transaction()

Pour demarrer une transaction

Return values
bool

true si la transaction est demarree false en cas d'erreur

sql_hex()

Prépare une chaine hexadécimale

sql_hex(string $val[, string $serveur = '' ][, bool|string $option = true ]) : string

Prend une chaîne sur l'aphabet hexa et retourne sa représentation numérique attendue par le serveur SQL. Par exemple : FF ==> 0xFF en MySQL mais x'FF' en PG

Parameters
$val : string

Chaine hexadécimale

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour exécuter la demande.
  • 'continue' pour ne pas échouer en cas de serveur SQL indisponible.
Return values
string

Valeur hexadécimale attendue par le serveur SQL

sql_quote()

Echapper du contenu

sql_quote(string $val[, string $serveur = '' ][, string $type = '' ]) : string

Echappe du contenu selon ce qu'attend le type de serveur SQL et en fonction du type de contenu.

Permet entre autres de se protéger d'injections SQL.

Cette fonction est automatiquement appelée par les fonctions sql_*q tel que sql_instertq ou sql_updateq

Parameters
$val : string

Chaine à echapper

$serveur : string = ''

Nom du connecteur

$type : string = ''

Peut contenir une declaration de type de champ SQL. Exemple : int NOT NULL qui sert alors aussi à calculer le type d'échappement

Return values
string

La chaine echappee

sql_date_proche()

Tester si une date est proche de la valeur d'un champ

sql_date_proche(string $champ, int $interval, string $unite[, string $serveur = '' ][, bool|string $option = true ]) : string|bool
Parameters
$champ : string

Nom du champ a tester

$interval : int

Valeur de l'intervalle : -1, 4, ...

$unite : string

Utité utilisée (DAY, MONTH, YEAR, ...)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour exécuter la demande.
  • 'continue' pour ne pas échouer en cas de serveur SQL indisponible.
Return values
string|bool
  • string : Expression SQL
  • false si le serveur SQL est indisponible

sql_in_quote()

Retourne une expression IN pour le gestionnaire de base de données

sql_in_quote(string $champ, array<string|int, mixed> $valeurs[, string $not = '' ][, string $serveur = '' ][, string $type = '' ][, bool|string $option = true ]) : string

Retourne un code à insérer dans une requête SQL pour récupérer les éléments d'une colonne qui appartiennent à une liste donnée

Parameters
$champ : string

Colonne SQL sur laquelle appliquer le test

$valeurs : array<string|int, mixed>

Liste des valeurs possibles (séparés par des virgules si string) le format string est historique et n'est accepte que pour des ids numeriques car autrement la securite ne peut etre garantie

$not : string = ''
  • '' sélectionne les éléments correspondant aux valeurs
  • 'NOT' inverse en sélectionnant les éléments ne correspondant pas aux valeurs
$serveur : string = ''

Nom du connecteur

$type : string = ''

type du champ pour le sql_quote

$option : bool|string = true

Peut avoir 3 valeurs :

  • 'continue' -> ne pas echouer en cas de serveur sql indisponible
  • true ou false -> retourne l'expression
Tags
example

sql_in_quote('id_rubrique', array(3,4,5)) retourne approximativement «id_rubrique IN (3,4,5)» selon ce qu'attend le gestionnaire de base de donnée du connecteur en cours.

Return values
string

Expression de requête SQL

sql_in()

shorthand historique qui ne permet pas de specifier le type et qui accepte une string pour $valeurs

sql_in(string $champ, array<string|int, mixed>|string $valeurs[, string $not = '' ][, string $serveur = '' ][, bool $option = true ]) : mixed
Parameters
$champ : string
$valeurs : array<string|int, mixed>|string

Liste des valeurs possibles (séparés par des virgules si string) le format string est historique et n'est accepte que pour des ids numeriques car autrement la securite ne peut etre garantie

$not : string = ''
$serveur : string = ''
$option : bool = true
Tags
see
sql_in_quote

sql_in_select()

Retourne une expression IN pour le gestionnaire de base de données à partir d'une sélection de données

sql_in_select(string $in, array<string|int, mixed>|string $select[, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ]) : string

Sélectionne les données (comme sql_select()) et prépare avec l'expression IN

Parameters
$in : string

Colonne SQL sur laquelle appliquer le test

$select : array<string|int, mixed>|string

Liste des champs à récupérer (Select). La donnée extraite est le premier élément de la sélection.

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Nom du connecteur

Tags
see
sql_select()
see
sql_in()
note

Penser à dire dans la description du serveur s'il accepte les requêtes imbriquées afin d'optimiser ca

Return values
string

Expression de requête SQL

sql_skip()

Implémentation sécurisée du saut en avant.

sql_skip(object $res, int $pos, int $saut, int $count[, string $serveur = '' ][, bool|string $option = true ]) : int

Ne dépend pas de la disponibilité de la fonction sql_seek(). Ne fait rien pour une valeur négative ou nulle de $saut. Retourne la position après le saut

Parameters
$res : object

Ressource issue d'une selection sql_select

$pos : int

position courante

$saut : int

saut demande

$count : int

position maximale (nombre de resultat de la requete OU position qu'on ne veut pas depasser)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Tags
see
sql_seek()
Return values
int

Position apres le saut.

sql_test_int()

Teste qu'une description de champ SQL est de type entier

sql_test_int(string $type[, string $serveur = '' ][, bool $option = true ]) : bool
Parameters
$type : string

Description de la colonne SQL

$serveur : string = ''

Nom du connecteur

$option : bool = true

Inutilisé

Tags
see
sql_test_date()

pour tester les champs de date

Return values
bool

True si le champ est de type entier

sql_test_date()

Teste qu'une description de champ SQL est de type entier

sql_test_date(string $type[, string $serveur = '' ][, bool $option = true ]) : bool
Parameters
$type : string

Description de la colonne SQL

$serveur : string = ''

Nom du connecteur

$option : bool = true

Inutilisé

Tags
see
sql_test_int()

pour tester les champs d'entiers

Return values
bool

True si le champ est de type entier

sql_format_date()

Formate une date

sql_format_date([int $annee = 0 ][, int $mois = 0 ][, int $jour = 0 ][, int $h = 0 ][, int $m = 0 ][, int $s = 0 ][, string $serveur = '' ]) : string

Formater une date Y-m-d H:i:s sans passer par mktime qui ne sait pas gerer les dates < 1970

Parameters
$annee : int = 0

Annee

$mois : int = 0

Numero du mois

$jour : int = 0

Numero du jour dans le mois

$h : int = 0

Heures

$m : int = 0

Minutes

$s : int = 0

Secondes

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

Return values
string

La date formatee

prefixer_table_spip()

Corrige le nom d’une table SQL en utilisant le bon préfixe

prefixer_table_spip(string $table, string $prefixe) : string

Ie: si prefixe 'dev', retournera, pour la table 'spip_articles' : 'dev_articles'.

Parameters
$table : string
$prefixe : string
Return values
string

Table sql éventuellement renommée


        
On this page

Search results