Reorder and Added missing databases

This commit is contained in:
2023-02-28 23:41:51 -03:00
parent a326904825
commit 99344fda7d
17 changed files with 260 additions and 251 deletions

View File

@ -28,7 +28,7 @@ Database Abstraction Layer
...
"require": {
...
"provm/database": "^2.0"
"provm/database": "^2.3"
...
},
...
@ -41,13 +41,13 @@ For `MySQL`/`MariaDB`
Without `DI`
```
$database new MySQL();
$database new ProVM\Database\MySQL();
$database->setHost(<host>);
$database->setPort(<port>); // If diferent from 3306
$database->setUsername(<username>);
$database->setPassword(<password>);
$connection = new Connection($database);
$connection = new ProVM\Database\Connection($database);
```
With `DI`
```
@ -76,8 +76,20 @@ $rs = $connection->execute(<query>, <values>);
```
Get data from ResultSet
```
$data = $rs->getAsArray();
$data_objs = $rs->getAsObject();
$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
@ -97,23 +109,20 @@ Connection handling
+ `Connection::query` Query the database
+ `Connection::prepare` Prepare query statement
+ `Connection::execute` Prepare and execute a query statement
+ `Conneciton::transaction` Return a transaction
+ `Connection::transaction` Return a transaction
### Transaction
Transaction
+ `Transaction::begin` Begin transaction
+ `Transaction::commit` Commit changes
+ `Transaction::rollBack` Roll back changes
+ `Transaction::query` Same as `Connection::query`
+ `Transaction::prepare` Same as `Connection::prepare`
+ `Transaction::execute` Same as `Connection::execute`
### ResultSet
Result set to handle PDOStatement
+ `ResultSet::execute` Execute a prepared statement
+ `ResultSet::getAsArray` Return query results as array of associative arrays
+ `ResultSet::getAsObject` Return query results as array of objects
+ `ResultSet::getFirst` Return first result as object
+ `ResultSet::fetchAll` Return query results as array of associative arrays
+ `ResultSet::fetchAllAsObjects` Return query results as array of objects
+ `ResultSet::fetchFirst` Return first result as associative array
+ `ResultSet::fetchFirstAsObject` Return first result as object
## TODO
+ Implement other database types. eg: PostgreSQL, SQLite