1bd3ccb8db374112bf2060eccbfb5455af021a33
Database
Database Abstraction Layer
Requirements
- PHP 8+
- PDO
Recommended
Installation
composer.json
{
...
"repositories": [
...
{
"type": "git",
"path": "https://git.provm.cl/ProVM/database.git"
}
...
],
...
"require": {
...
"provm/database": "^2.3"
...
},
...
}
Usage
For MySQL/MariaDB
Without DI
$database new ProVM\Database\MySQL();
$database->setHost(<host>);
$database->setPort(<port>); // If diferent from 3306
$database->setUsername(<username>);
$database->setPassword(<password>);
$connection = new ProVM\Database\Connection($database);
With DI
$container->set(ProVM\Concept\Database::class, function(Psr\Container\ContainerInterface $container) {
$database = $container->get(ProVM\Database\MySQL::class);
$database->setHost(<host>);
$database->setPort(<port>); // If diferent from 3306
$database->setUsername(<username>);
$database->setPassword(<password>);
return $database;
});
$container->set(ProVM\Concept\Database\Connection::class, function(Psr\Container\ContainerInterface $container) {
return new ProVM\Database\Connection($container->get(ProVM\Concept\Database::class);
});
Run query
$rs = $connection->query(<query>);
Run prepared statement
$rs = $connection->prepare(<query>)->execute(<value>);
or
$rs = $connection->execute(<query>, <values>);
Get data from ResultSet
$data = $rs->fetchFirst();
$data_object = $rs->fetchFirstAsObject();
$data_array = $rs->fetchAll();
$data_array_of_objects = $rs->fetchAllAsObjects();
Use transactions
$connection->transaction()->begin();
try {
$connection->execute($query, $values);
$connection->transaction()->commit();
} catch (PDOException $exception) {
$connection->transaction()->rollBack();
}
Definitions
Database
Database configuration
Database::hostConnection host name [string]Database::portConnection port number [int]Database::nameDatabase name to connect [string]Database::usernameOptional. The username to connect [string]Database::passwordOptional. The password for the username [string]Database->getDsn()get dsn string for PDO connection. [string]Database->needsUser()If a user is needed for the connection.
Connection
Connection handling
Connection::queryQuery the databaseConnection::preparePrepare query statementConnection::executePrepare and execute a query statementConnection::transactionReturn a transaction
Transaction
Transaction
Transaction::beginBegin transactionTransaction::commitCommit changesTransaction::rollBackRoll back changes
ResultSet
Result set to handle PDOStatement
ResultSet::executeExecute a prepared statementResultSet::fetchAllReturn query results as array of associative arraysResultSet::fetchAllAsObjectsReturn query results as array of objectsResultSet::fetchFirstReturn first result as associative arrayResultSet::fetchFirstAsObjectReturn first result as object
TODO
Description
v3.0.0
Latest
Languages
PHP
96.2%
Dockerfile
3.8%