41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
namespace nulib\db;
|
|
|
|
interface IDatabase extends ITransactor {
|
|
/**
|
|
* retourner le type de la base de données (mysql, pgsql, sqlite, ...)
|
|
* ce préfixe peut servir à qualifier les migrations
|
|
*/
|
|
function getPrefix(): ?string;
|
|
|
|
/** obtenir la requête SQL correspondant à $query */
|
|
function getSql($query, ?array $params=null): string;
|
|
|
|
/**
|
|
* vérifier la connexion à la base de données, et refaire la connexion si
|
|
* nécessaire. NB: si la connexion a la base de données était perdue, les
|
|
* transactions en cours sont perdues. cette méthode est donc prévue pour
|
|
* vérifier la validité de la connexion avant de lancer une transaction
|
|
*/
|
|
function ensureLive(): self;
|
|
|
|
/**
|
|
* - si c'est un insert, retourner l'identifiant autogénéré de la ligne
|
|
* - sinon retourner le nombre de lignes modifiées en cas de succès, ou false
|
|
* en cas d'échec
|
|
*
|
|
* @return int|false
|
|
*/
|
|
function exec($query, ?array $params=null);
|
|
|
|
function get($query, ?array $params=null, bool $entireRow=false);
|
|
|
|
function one($query, ?array $params=null): ?array;
|
|
|
|
/**
|
|
* si $primaryKeys est fourni, le résultat est indexé sur la(es) colonne(s)
|
|
* spécifiée(s)
|
|
*/
|
|
function all($query, ?array $params=null, $primaryKeys=null): iterable;
|
|
}
|