Documentation du code de SPIP et de ses plugins

SPIP

mysql.php

SPIP, Système de publication pour l'internet

Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James

Ce programme est un logiciel libre distribué sous licence GNU/GPL.

Table of Contents

Constants

_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