Documentation du code de SPIP et de ses plugins

SPIP

mysql.php

Ce fichier contient les fonctions gérant les instructions SQL pour MySQL

Ces instructions utilisent la librairie PHP Mysqli

Table of Contents

Constants

_MYSQL_NOPLANES  = \true
_MYSQL_RE_SHOW_TABLE  = '/^[^(),]*\\(((?:[^()]*\\((?:[^()]*\\([^()]*\\))?[^()]*\\)[^()]*)*[^()]*)\\)[^()]*$/'
_SQL_PREFIXE_TABLE_MYSQL  = '/([,\\s])spip_/S'
Changer les noms des tables ($table_prefix)
spip_interdire_cache  = true

Functions

req_mysql_dist()  : array<string|int, mixed>|bool
Crée la première connexion à un serveur MySQL via MySQLi
_mysql_link()  : object
Retrouver un link d'une connexion MySQL via MySQLi
spip_mysql_set_charset()  : mysqli_result|bool
Définit un charset pour la connexion avec Mysql
spip_mysql_get_charset()  : array<string|int, mixed>
Teste si le charset indiqué est disponible sur le serveur SQL
spip_mysql_query()  : mysqli_result|bool|string|array<string|int, mixed>
Exécute une requête MySQL, munie d'une trace à la demande
spip_mysql_alter()  : array<string|int, mixed>|bool|string
Modifie une structure de table MySQL
spip_mysql_optimize()  : bool
Optimise une table MySQL
spip_mysql_explain()  : array<string|int, mixed>
Retourne une explication de requête (Explain) MySQL
spip_mysql_select()  : array<string|int, mixed>|bool|resource|string
Exécute une requête de sélection avec MySQL
spip_mysql_order()  : string
Prépare une clause order by
calculer_mysql_where()  : string
Prépare une clause WHERE pour MySQL
calculer_mysql_expression()  : string
Calcule un expression pour une requête, en cumulant chaque élément avec l'opérateur de liaison ($join) indiqué
spip_mysql_select_as()  : string
Renvoie des `nom AS alias`
_mysql_traite_query()  : string
Prépare le texte d'une requête avant son exécution
spip_mysql_selectdb()  : bool
Sélectionne une base de données
spip_mysql_listdbs()  : array<string|int, mixed>
Retourne les bases de données accessibles
spip_mysql_create()  : array<string|int, mixed>|null|resource|string
Crée une table SQL
_mysql_remplacements_definitions_table()  : string|array<string|int, mixed>
Adapte pour Mysql la déclaration SQL d'une colonne d'une table
spip_mysql_create_base()  : bool
Crée une base de données MySQL
spip_mysql_create_view()  : bool|string
Crée une vue SQL nommée `$nom`
spip_mysql_drop_table()  : bool|string
Supprime une table SQL
spip_mysql_drop_view()  : bool|string
Supprime une vue SQL
spip_mysql_showbase()  : mysqli_result|bool|string
Retourne une ressource de la liste des tables de la base de données
spip_mysql_repair()  : bool|string|array<string|int, mixed>
Répare une table SQL
spip_mysql_table_exists()  : bool|string
Indique si une table existe dans la base de données
spip_mysql_showtable()  : array<string|int, mixed>|string
Obtient la description d'une table ou vue MySQL
spip_mysql_fetch()  : array<string|int, mixed>|null|false
Rècupère une ligne de résultat
spip_mysql_seek()  : bool
Place le pointeur de résultat sur la position indiquée
spip_mysql_countsel()  : int|string
Retourne le nombre de lignes d'une sélection
spip_mysql_error()  : string
Retourne la dernière erreur generée
spip_mysql_errno()  : int
Retourne le numero de la dernière erreur SQL
spip_mysql_count()  : int
Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`
spip_mysql_free()  : bool
Libère une ressource de résultat
spip_mysql_insert()  : bool|string|int|array<string|int, mixed>
Insère une ligne dans une table
spip_mysql_insertq()  : bool|string|int|array<string|int, mixed>
Insère une ligne dans une table, en protégeant chaque valeur
spip_mysql_insertq_multi()  : int|bool|string
Insère plusieurs lignes d'un coup dans une table
spip_mysql_update()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL
spip_mysql_updateq()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL et protège chaque valeur
spip_mysql_delete()  : bool|string
Supprime des enregistrements d'une table
spip_mysql_replace()  : bool|string
Insère où met à jour une entrée d’une table SQL
spip_mysql_replace_multi()  : bool|string
Insère où met à jour des entrées d’une table SQL
spip_mysql_multi()  : string
Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée
spip_mysql_hex()  : string
Prépare une chaîne hexadécimale
spip_mysql_quote()  : string|number
Échapper une valeur selon son type ou au mieux comme le fait `_q()` mais pour MySQL avec ses spécificités
spip_mysql_date_proche()  : string
Tester si une date est proche de la valeur d'un champ
spip_mysql_in()  : string
Retourne une expression IN pour le gestionnaire de base de données
spip_mysql_cite()  : string|number
Renvoie les bons echappements (mais pas sur les fonctions comme NOW())
spip_versions_mysql()  : bool
Teste si on a les fonctions MySQLi (pour l'install)
test_rappel_nom_base_mysql()  : string
Tester si mysql ne veut pas du nom de la base dans les requêtes
test_sql_mode_mysql()  : string
Teste si on peut changer les modes de MySQL

Constants

_MYSQL_NOPLANES

public mixed _MYSQL_NOPLANES = \true

_MYSQL_RE_SHOW_TABLE

public mixed _MYSQL_RE_SHOW_TABLE = '/^[^(),]*\\(((?:[^()]*\\((?:[^()]*\\([^()]*\\))?[^()]*\\)[^()]*)*[^()]*)\\)[^()]*$/'

_SQL_PREFIXE_TABLE_MYSQL

Changer les noms des tables ($table_prefix)

public mixed _SQL_PREFIXE_TABLE_MYSQL = '/([,\\s])spip_/S'

TODO: Quand tous les appels SQL seront abstraits on pourra l'améliorer

spip_interdire_cache

public mixed spip_interdire_cache = true

Functions

req_mysql_dist()

Crée la première connexion à un serveur MySQL via MySQLi

req_mysql_dist(string $host, int $port, string $login, string $pass[, string $db = '' ][, string $prefixe = '' ]) : array<string|int, mixed>|bool
Parameters
$host : string

Chemin du serveur

$port : int

Port de connexion

$login : string

Nom d'utilisateur

$pass : string

Mot de passe

$db : string = ''

Nom de la base

$prefixe : string = ''

Préfixe des tables SPIP

Return values
array<string|int, mixed>|bool
  • false si la connexion a échoué
  • tableau décrivant la connexion sinon

Retrouver un link d'une connexion MySQL via MySQLi

_mysql_link([string $serveur = '' ]) : object
Parameters
$serveur : string = ''

Nom du serveur

Return values
object

Information de connexion pour mysqli

spip_mysql_set_charset()

Définit un charset pour la connexion avec Mysql

spip_mysql_set_charset(string $charset[, string $serveur = '' ][, bool $requeter = true ]) : mysqli_result|bool
Parameters
$charset : string

Charset à appliquer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
mysqli_result|bool

Jeu de résultats pour fetch()

spip_mysql_get_charset()

Teste si le charset indiqué est disponible sur le serveur SQL

spip_mysql_get_charset([array<string|int, mixed>|string $charset = [] ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>
Parameters
$charset : array<string|int, mixed>|string = []

Nom du charset à tester.

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
array<string|int, mixed>

Description du charset (son nom est dans 'charset')

spip_mysql_query()

Exécute une requête MySQL, munie d'une trace à la demande

spip_mysql_query(string $query[, string $serveur = '' ][, bool $requeter = true ]) : mysqli_result|bool|string|array<string|int, mixed>
Parameters
$query : string

Requête

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
mysqli_result|bool|string|array<string|int, mixed>
  • mysqli_result|bool : Si requête exécutée
  • string : texte de la requête si on ne l'exécute pas
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

spip_mysql_alter()

Modifie une structure de table MySQL

spip_mysql_alter(string $query[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string
Parameters
$query : string

Requête SQL (sans 'ALTER ')

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si on ne l'exécute pas
  • bool : Si requête exécutée
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

spip_mysql_optimize()

Optimise une table MySQL

spip_mysql_optimize(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$table : string

Nom de la table

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
bool

Toujours true

spip_mysql_explain()

Retourne une explication de requête (Explain) MySQL

spip_mysql_explain(string $query[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>
Parameters
$query : string

texte de la requête

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
array<string|int, mixed>

Tableau de l'explication

spip_mysql_select()

Exécute une requête de sélection avec MySQL

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

Instance de sql_select (voir ses specs).

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

Champs sélectionnés

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

Tables sélectionnées

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

Contraintes

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

Regroupements

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

Tris

$limit : string = ''

Limites de résultats

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

Contraintes posts sélections

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Tags
see
sql_select()
note

Les \n et \t sont utiles au debusqueur.

Return values
array<string|int, mixed>|bool|resource|string
  • string : texte de la requête si on ne l'exécute pas
  • ressource si requête exécutée, ressource pour fetch()
  • false si la requête exécutée a ratée
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

spip_mysql_order()

Prépare une clause order by

spip_mysql_order(string|array<string|int, mixed> $orderby) : string

Regroupe en texte les éléments si un tableau est donné

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

texte du orderby à préparer

Tags
note

0+x avec un champ x commencant par des chiffres est converti par MySQL en le nombre qui commence x. Pas portable malheureusement, on laisse pour le moment.

Return values
string

texte du orderby préparé

calculer_mysql_where()

Prépare une clause WHERE pour MySQL

calculer_mysql_where(array<string|int, mixed>|string $v) : string

Retourne une chaîne avec les bonnes parenthèses pour la contrainte indiquée, au format donnée par le compilateur

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

Description des contraintes

  • string : texte du where
  • sinon tableau : A et B peuvent être de type string ou array, OP et C sont de type string :
    • array(A) : A est le texte du where
    • array(OP, A) : contrainte OP( A )
    • array(OP, A, B) : contrainte (A OP B)
    • array(OP, A, B, C) : contrainte (A OP (B) : C)
Return values
string

Contrainte pour clause WHERE

calculer_mysql_expression()

Calcule un expression pour une requête, en cumulant chaque élément avec l'opérateur de liaison ($join) indiqué

calculer_mysql_expression(string $expression, array<string|int, mixed>|string $v[, string $join = 'AND' ]) : string

Renvoie grosso modo "$expression join($join, $v)"

Parameters
$expression : string

Mot clé de l'expression, tel que "WHERE" ou "ORDER BY"

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

Données de l'expression

$join : string = 'AND'

Si les données sont un tableau, elles seront groupées par cette jointure

Return values
string

texte de l'expression, une partie donc, du texte la requête.

spip_mysql_select_as()

Renvoie des `nom AS alias`

spip_mysql_select_as(array<string|int, mixed> $args) : string
Parameters
$args : array<string|int, mixed>
Return values
string

Sélection de colonnes pour une clause SELECT

_mysql_traite_query()

Prépare le texte d'une requête avant son exécution

_mysql_traite_query(string $query[, string $db = '' ][, string $prefixe = '' ][, bool $echappe_textes = true ]) : string

Change les préfixes de tables SPIP par ceux véritables

Parameters
$query : string

Requête à préparer

$db : string = ''

Nom de la base de donnée

$prefixe : string = ''

Préfixe de tables à appliquer

$echappe_textes : bool = true

Pour ne pas essayer de re-echapper une chaine deja echappee qu'on traite en recursif

Return values
string

Requête préparée

spip_mysql_selectdb()

Sélectionne une base de données

spip_mysql_selectdb(string $db[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$db : string

Nom de la base à utiliser

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
bool
  • True cas de succès.
  • False en cas d'erreur.

spip_mysql_listdbs()

Retourne les bases de données accessibles

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

Retourne un tableau du nom de toutes les bases de données 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

$requeter : bool = true

Inutilisé

Return values
array<string|int, mixed>

Liste de noms de bases de données

spip_mysql_create()

Crée une table SQL

spip_mysql_create(string $nom, array<string|int, mixed> $champs, array<string|int, mixed> $cles[, bool $autoinc = false ][, bool $temporary = false ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|null|resource|string

Crée une table SQL nommee $nom à partir des 2 tableaux $champs et $cles

Parameters
$nom : string

Nom de la table SQL

$champs : array<string|int, mixed>

Couples (champ => description SQL)

$cles : array<string|int, mixed>

Couples (type de clé => champ(s) de la clé)

$autoinc : bool = false

True pour ajouter un auto-incrément sur la Primary Key

$temporary : bool = false

True pour créer une table temporaire

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Tags
note

Le nom des caches doit être inferieur à 64 caractères

Return values
array<string|int, mixed>|null|resource|string
  • null si champs ou cles n'est pas un tableau
  • true si la requête réussie, false sinon.

_mysql_remplacements_definitions_table()

Adapte pour Mysql la déclaration SQL d'une colonne d'une table

_mysql_remplacements_definitions_table(string|array<string|int, mixed> $query) : string|array<string|int, mixed>
Parameters
$query : string|array<string|int, mixed>

Définition SQL d'un champ de table ou liste de déclarations

Tags
used-by
maj_timestamp_mysql()
Return values
string|array<string|int, mixed>

Définition SQL adaptée pour MySQL d'un champ de table

spip_mysql_create_base()

Crée une base de données MySQL

spip_mysql_create_base(string $nom[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$nom : string

Nom de la base

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool

true si la base est créee.

spip_mysql_create_view()

Crée une vue SQL nommée `$nom`

spip_mysql_create_view(string $nom, string $query_select[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$nom : string

Nom de la vue à creer

$query_select : string

texte de la requête de sélection servant de base à la vue

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Effectuer la requete, sinon la retourner

Return values
bool|string
  • true si la vue est créée
  • false si erreur ou si la vue existe déja
  • string texte de la requête si $requeter vaut false

spip_mysql_drop_table()

Supprime une table SQL

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

Nom de la table SQL

$exist : bool = false

True pour ajouter un test d'existence avant de supprimer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

spip_mysql_drop_view()

Supprime une vue SQL

spip_mysql_drop_view(string $view[, bool $exist = false ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$view : 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

spip_mysql_showbase()

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

spip_mysql_showbase(string $match[, string $serveur = '' ][, bool $requeter = true ]) : mysqli_result|bool|string
Parameters
$match : string

Filtre sur tables à récupérer

$serveur : string = ''

Connecteur de la base

$requeter : bool = true

true pour éxecuter la requête false pour retourner le texte de la requête.

Return values
mysqli_result|bool|string

Ressource à utiliser avec sql_fetch()

spip_mysql_repair()

Répare une table SQL

spip_mysql_repair(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool|string|array<string|int, mixed>

Utilise REPAIR TABLE ... de MySQL

Parameters
$table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|array<string|int, mixed>
  • string texte de la requête si demandée,
  • true si la requête a réussie, false sinon

spip_mysql_table_exists()

Indique si une table existe dans la base de données

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

Table dont on cherche l’existence

$serveur : string = ''

Connecteur de la base

$requeter : bool = true

true pour éxecuter la requête false pour retourner le texte de la requête.

Return values
bool|string
  • true si la table existe, false sinon
  • string : requete sql, si $requeter = true

spip_mysql_showtable()

Obtient la description d'une table ou vue MySQL

spip_mysql_showtable(string $nom_table[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|string

Récupère la définition d'une table ou d'une vue avec colonnes, indexes, etc. au même format que la définition des tables SPIP, c'est à dire un tableau avec les clés

  • field (tableau colonne => description SQL) et
  • key (tableau type de clé => colonnes)
Parameters
$nom_table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|string
  • chaîne vide si pas de description obtenue
  • string texte de la requête si demandé
  • array description de la table sinon

spip_mysql_fetch()

Rècupère une ligne de résultat

spip_mysql_fetch(mysqli_result $r[, string $t = '' ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|null|false

Récupère la ligne suivante d'une ressource de résultat

Parameters
$r : mysqli_result

Jeu de résultats (issu de sql_select)

$t : string = ''

Structure de résultat attendu (défaut MYSQLI_ASSOC)

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
array<string|int, mixed>|null|false
  • array Ligne de résultat
  • null Pas de résultat
  • false Erreur

spip_mysql_seek()

Place le pointeur de résultat sur la position indiquée

spip_mysql_seek(mysqli_result $r, int $row_number[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$r : mysqli_result

Jeu de résultats

$row_number : int

Position. Déplacer le pointeur à cette ligne

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
bool

True si déplacement réussi, false sinon.

spip_mysql_countsel()

Retourne le nombre de lignes d'une sélection

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

Tables à consulter (From)

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

Conditions a remplir (Where)

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

Critère de regroupement (Group by)

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

Tableau des des post-conditions à remplir (Having)

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
int|string
  • string texte de la requête si demandé
  • int Nombre de lignes (0 si la requête n'a pas réussie)

spip_mysql_error()

Retourne la dernière erreur generée

spip_mysql_error([string $query = '' ][, string $serveur = '' ][, bool $requeter = true ]) : string
Parameters
$query : string = ''

Requête qui était exécutée

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Tags
note

Bien spécifier le serveur auquel on s'adresse, mais à l'install la globale n'est pas encore complètement définie.

uses
sql_error_backtrace()
Return values
string

Erreur eventuelle

spip_mysql_errno()

Retourne le numero de la dernière erreur SQL

spip_mysql_errno([string $serveur = '' ][, bool $requeter = true ]) : int
Parameters
$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
int

0, pas d'erreur. Autre, numéro de l'erreur.

spip_mysql_count()

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

spip_mysql_count(Ressource $r[, string $serveur = '' ][, bool $requeter = true ]) : int
Parameters
$r : Ressource

Ressource de résultat

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
int

Nombre de lignes

spip_mysql_free()

Libère une ressource de résultat

spip_mysql_free(mysqli_result $r[, string $serveur = '' ][, bool $requeter = true ]) : bool

Indique à MySQL de libérer de sa mémoire la ressource de résultat indiquée car on n'a plus besoin de l'utiliser.

Parameters
$r : mysqli_result

Jeu de résultats

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
bool

True si réussi

spip_mysql_insert()

Insère une ligne dans une table

spip_mysql_insert(string $table, string $champs, string $valeurs[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string|int|array<string|int, mixed>
Parameters
$table : string

Nom de la table SQL

$champs : 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|int|array<string|int, mixed>
  • 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,
  • Tableau de description de la requête et du temps d'exécution, si var_profile activé

spip_mysql_insertq()

Insère une ligne dans une table, en protégeant chaque valeur

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

Nom de la table SQL

$couples : string = []

Couples (colonne => 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|int|array<string|int, mixed>
  • 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,
  • Tableau de description de la requête et du temps d'exécution, si var_profile activé

spip_mysql_insertq_multi()

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

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

Nom de la table SQL

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

Tableau de tableaux associatifs (colonne => 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

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

spip_mysql_update()

Met à jour des enregistrements d'une table SQL

spip_mysql_update(string $table, array<string|int, mixed> $champs[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string
Parameters
$table : string

Nom de la table

$champs : 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

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

spip_mysql_updateq()

Met à jour des enregistrements d'une table SQL et protège chaque valeur

spip_mysql_updateq(string $table, array<string|int, mixed> $champs[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string

Protège chaque valeur transmise avec sql_quote(), adapté au type de champ attendu par la table SQL

Parameters
$table : string

Nom de la table

$champs : 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

Tags
note

Les valeurs sont des constantes à mettre entre apostrophes sauf les expressions de date lorsqu'il s'agit de fonctions SQL (NOW etc)

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

spip_mysql_delete()

Supprime des enregistrements d'une table

spip_mysql_delete(string $table[, string|array<string|int, mixed> $where = '' ][, string $serveur = '' ][, bool $requeter = 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • int : nombre de suppressions réalisées,
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_mysql_replace()

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

spip_mysql_replace(string $table, array<string|int, mixed> $couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = 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 updateq ou insertq.

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

$requeter : bool = true

Exécuter la requête, sinon la retourner

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

spip_mysql_replace_multi()

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

spip_mysql_replace_multi(string $table, array<string|int, mixed> $tab_couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = 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 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

$requeter : bool = true

Exécuter la requête, sinon la retourner

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

spip_mysql_multi()

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

spip_mysql_multi(string $objet, string $lang) : string

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

Parameters
$objet : string

Colonne ayant le texte

$lang : string

Langue à extraire

Return values
string

texte de sélection pour la requête

spip_mysql_hex()

Prépare une chaîne hexadécimale

spip_mysql_hex(string $v) : string

Par exemple : FF ==> 0xFF en MySQL

Parameters
$v : string

Chaine hexadecimale

Return values
string

Valeur hexadécimale pour MySQL

spip_mysql_quote()

Échapper une valeur selon son type ou au mieux comme le fait `_q()` mais pour MySQL avec ses spécificités

spip_mysql_quote(string|array<string|int, mixed>|number $v[, string $type = '' ]) : string|number
Parameters
$v : string|array<string|int, mixed>|number

texte, nombre ou tableau à échapper

$type : string = ''

Description du type attendu (par exemple description SQL de la colonne recevant la donnée)

Return values
string|number

Donnée prête à être utilisée par le gestionnaire SQL

spip_mysql_date_proche()

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

spip_mysql_date_proche(string $champ, int $interval, string $unite) : string
Parameters
$champ : string

Nom du champ a tester

$interval : int

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

$unite : string

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

Return values
string

Expression SQL

spip_mysql_in()

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

spip_mysql_in(string $val, string $valeurs[, string $not = '' ][, string $serveur = '' ][, bool $requeter = true ]) : string

IN (...) est limité à 255 éléments, d'où cette fonction assistante

Parameters
$val : string

Colonne SQL sur laquelle appliquer le test

$valeurs : string

Liste des valeurs possibles (séparés par des virgules)

$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

$requeter : bool = true

Inutilisé

Return values
string

Expression de requête SQL

spip_mysql_cite()

Renvoie les bons echappements (mais pas sur les fonctions comme NOW())

spip_mysql_cite(string|number $v, string $type) : string|number
Parameters
$v : string|number

texte ou nombre à échapper

$type : string

Type de donnée attendue, description SQL de la colonne de destination

Return values
string|number

texte ou nombre échappé

spip_versions_mysql()

Teste si on a les fonctions MySQLi (pour l'install)

spip_versions_mysql() : bool
Return values
bool

True si on a les fonctions, false sinon

test_rappel_nom_base_mysql()

Tester si mysql ne veut pas du nom de la base dans les requêtes

test_rappel_nom_base_mysql(string $server_db) : string
Parameters
$server_db : string
Return values
string
  • chaîne vide si nom de la base utile
  • chaîne : code compilé pour le faire désactiver par SPIP sinon

test_sql_mode_mysql()

Teste si on peut changer les modes de MySQL

test_sql_mode_mysql(string $server_db) : string
Parameters
$server_db : string

Nom de la connexion

Tags
link
http://dev.mysql.com/doc/refman/5.0/fr/server-sql-mode.html
Return values
string
  • chaîne vide si on ne peut pas appliquer de mode
  • chaîne : code compilé pour l'indiquer le résultat du test à SPIP

        
On this page

Search results