Documentation du code de SPIP et de ses plugins

SPIP

Sql extends AbstractIterateur
in package
implements Iterator

Itérateur SQL.

Permet d'itérer sur des données en base de données

Table of Contents

Interfaces

Iterator

Properties

$err  : bool
Erreur presente ?
$total  : int|null
Calcul du total des elements
$command  : array<string|int, mixed>
$firstseek  : bool
$info  : array<string|int, mixed>
$pos  : int
$row  : null|array<string|int, mixed>
row sql courante.
$sqlresult  : bool|object
Ressource sql.
$type  : string

Methods

__construct()  : mixed
count()  : int
Compter le nombre de resultats.
current()  : array<string|int, mixed>|null
Valeurs sur la position courante.
fetch()  : null|array<string|int, mixed>|bool
Avancer et retourner les donnees pour le nouvel element.
free()  : bool
liberer les ressources.
key()  : int
next()  : void
Avancer d'un cran.
rewind()  : bool
Rembobiner.
seek()  : bool
Sauter a une position absolue.
valid()  : bool
Verifier l'etat de l'iterateur.
select()  : mixed
selectionner les donnees, ie faire la requete SQL.
can_optimize_pagination()  : bool
Vérifier si on peut optimiser les requêtes paginées
get_select_as_list()  : array<string|int, mixed>
Recherche dans une liste de champs à sélectionner ceux qui sont marqués avec un `AS` Et les renvoie sous forme de liste

Properties

$firstseek

protected bool $firstseek = false

$row

row sql courante.

protected null|array<string|int, mixed> $row

$sqlresult

Ressource sql.

protected bool|object $sqlresult = false

Methods

__construct()

public __construct(array<string|int, mixed> $command[, array<string|int, mixed> $info = [] ]) : mixed
Parameters
$command : array<string|int, mixed>
$info : array<string|int, mixed> = []

count()

Compter le nombre de resultats.

public count() : int
Return values
int

current()

Valeurs sur la position courante.

public current() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|null

fetch()

Avancer et retourner les donnees pour le nouvel element.

public fetch() : null|array<string|int, mixed>|bool
Return values
null|array<string|int, mixed>|bool

free()

liberer les ressources.

public free() : bool
Return values
bool

next()

Avancer d'un cran.

public next() : void

rewind()

Rembobiner.

public rewind() : bool
Return values
bool

seek()

Sauter a une position absolue.

public seek([int $n = 0 ][, null|string $continue = null ]) : bool
Parameters
$n : int = 0
$continue : null|string = null
Return values
bool

valid()

Verifier l'etat de l'iterateur.

public valid() : bool
Return values
bool

select()

selectionner les donnees, ie faire la requete SQL.

protected select() : mixed

can_optimize_pagination()

Vérifier si on peut optimiser les requêtes paginées

private can_optimize_pagination([array<string|int, mixed> $command = [] ]) : bool

On ne peut pas tout optimiser en faisant sql_countsel(), qui n’utilise pas la partie select de la boucle.

Si la requête contient un select champ AS xxx, et que xxx est utilisé dans une des parties nécessaire au sql_countsel, typiquement groupby ou having, alors la requête échouera, puisqu’elle n’aura pas la définition de xxx.

Également un simple having id_article > 4 échoue sans la présence de id_article en SELECT ou en GROUP BY.

On limite donc l’optimisation aux cas qui semblent pouvoir être traités.

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

tableau des commandes d'initialisation de la requete SQL

Return values
bool

get_select_as_list()

Recherche dans une liste de champs à sélectionner ceux qui sont marqués avec un `AS` Et les renvoie sous forme de liste

private get_select_as_list(array<string|int, mixed> $select) : array<string|int, mixed>
Parameters
$select : array<string|int, mixed>
Return values
array<string|int, mixed>

        
On this page

Search results