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
$err
Erreur presente ?
public
bool
$err
= false
$total
Calcul du total des elements
public
int|null
$total
= null
$command
protected
array<string|int, mixed>
$command
$firstseek
protected
bool
$firstseek
= false
$info
protected
array<string|int, mixed>
$info
= []
$pos
protected
int
$pos
= -1
$row
row sql courante.
protected
null|array<string|int, mixed>
$row
$sqlresult
Ressource sql.
protected
bool|object
$sqlresult
= false
$type
protected
string
$type
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
intcurrent()
Valeurs sur la position courante.
public
current() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullfetch()
Avancer et retourner les donnees pour le nouvel element.
public
fetch() : null|array<string|int, mixed>|bool
Return values
null|array<string|int, mixed>|boolfree()
liberer les ressources.
public
free() : bool
Return values
boolkey()
public
key() : int
Return values
intnext()
Avancer d'un cran.
public
next() : void
rewind()
Rembobiner.
public
rewind() : bool
Return values
boolseek()
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
boolvalid()
Verifier l'etat de l'iterateur.
public
valid() : bool
Return values
boolselect()
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
boolget_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>