ringfinger/backend/classes/core/DatabaseInterface.php

80 lines
1.7 KiB
PHP

<?php
interface DatabaseInterface
{
public const ORDER_ASC = true;
public const ORDER_DESC = false;
/**
* Has to close the connection.
*/
public function __destruct();
/**
* Sends an sql query to the database.
*/
public function Query(string $query, array $params = []): void;
/**
* @return array
*/
public function getResult(): array;
/**
* Selects backend from a table.
*/
public function Select(
string $tableName,
array $fields = [],
array $conditions = [],
int $limit = 0,
array $orderBy = [],
bool $asc = true,
int $offset = 0
): array;
/**
* Deletes rows from a table.
*/
public function Delete(string $table, array $conditions): void;
/**
* Inserts a new row into the table.
*/
public function Insert(string $table, array $fields): ?int;
/**
* Edits backend inside a table.
*/
public function Update(string $table, array $fields, array $conditions): void;
/**
* Returns the number of entries found.
*/
public function Count(string $table, array $conditions = []): int;
/*
* Returns if there's an open transaction.
*/
public function hasTransaction(): bool;
/*
* Starts a transaction that can later be committed or rolled back.
*/
public function startTransaction(): void;
/*
* Quits a current transaction without saving.
*/
public function rollback(): void;
/*
* Saves and exits a current transaction.
*/
public function commit(): void;
/**
* Returns the primary key from the last inserted row.
*/
public function GetLastInsertedId(): int;
}