Skip to content

Latest commit

 

History

History
152 lines (102 loc) · 4.31 KB

Database.md

File metadata and controls

152 lines (102 loc) · 4.31 KB

The Database class is an extension of PHP's PDO object that provides additional factory style methods for the query building statements supported by this library. Because the Database object extends PDO, all PDO methods like ::beginTransaction(), ::rollBack() and ::commit() are fully supported.

Constructor

__construct(string $dsn, ?string $username = null, ?string $password = null, array $options = [])

All the same constructor parameters you would use to create a PDO object. The Database class will apply the following default options unless explicitly overridden:

[
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
]
Parameter Description
$dsn Data source name
$username Database username
$password Database password
$options Array of key => value connection options

Example

use FaaPz\PDO\Database;

$database = new Database('mysql:host=localhost;dbname=test_db;charset=UTF8');

Methods

call(?MethodInterface $procedure = null): CallInterface

Creates a new Call statement that will use the optional METHOD parameter.

Parameter Description
$procedure Optional procedure to call

Example

use FaaPz\PDO\Clause\Method;
use FaaPz\PDO\Database;

$database = new Database('mysql:host=localhost;dbname=test_db;charset=UTF8');

// CALL MyProcedure(?, ?)
$statement = $database->call(new Method("MyProcedure", 1, 2));

$statement->execute();

insert(array $columns = []): InsertInterface

Creates a new INSERT statement that will use the optional array of columns.

Parameter Description
$columns Optional columns to use

Example

use FaaPz\PDO\Clause\Method;
use FaaPz\PDO\Database;

$database = new Database('mysql:host=localhost;dbname=test_db;charset=UTF8');

// INSERT INTO table (col1, col2) VALUES (?, ?), (?, ?)
$statement = $database->insert(['col1', 'col2'])
                 ->into('table')
                 ->values(1, 2)
                 ->values(3, 4);

$statement->execute();

select(array $columns = ['*']): SelectInterface

Creates a new Select statement that will use the optional array of columns.

Parameter Description
$columns Optional columns to select

Example

use FaaPz\PDO\Clause\Method;
use FaaPz\PDO\Database;

$database = new Database('mysql:host=localhost;dbname=test_db;charset=UTF8');

// SELECT COUNT(id) AS cnt FROM table
$statement = $database->select(['cnt' => 'COUNT(id)'])
                      ->from('table');

$statement->execute();

update(array $pairs = []): UpdateInterface

Creates a new UPDATE statement that will use the optional array of column / value pairs.

Parameter Description
$pairs Optional column / value pairs to update

Example

use FaaPz\PDO\Clause\Method;
use FaaPz\PDO\Database;

$database = new Database('mysql:host=localhost;dbname=test_db;charset=UTF8');

// UPDATE table SET col1 = ?, col2 = ?
$statement = $database->update(['col1' => 1, 'col2' => 2])
                      ->table('table');

$statement->execute();

delete($table = null): DeleteInterface

Creates a new DELETE statement that will use the optional table to delete from.

Parameter Description
$table Optional table to delete from

Example

use FaaPz\PDO\Clause\Method;
use FaaPz\PDO\Database;

$database = new Database('mysql:host=localhost;dbname=test_db;charset=UTF8');

// DELETE FROM table
$statement = $database->delete('table');

$statement->execute();