nulib-base/php/src/db/IDatabase.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;
}