r1ko/database-connection

Simple PDO Wrapper

1.0.2 2021-09-16 14:52 UTC

This package is auto-updated.

Last update: 2024-04-16 18:13:25 UTC


README

pipeline status coverage report

Connection

SQLite

use R1KO\Database\ConnectionFactory;

$params = [
    'driver' => 'sqlite',
    'path'   => ':memory:'
];

$db = ConnectionFactory::create($params);

MySQL

use R1KO\Database\ConnectionFactory;

$params = [
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'port'      => '3306',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => 'password',
    'charset'   => 'utf8mb4',
];

$db = ConnectionFactory::create($params);

MySQL with PDO options

use R1KO\Database\ConnectionFactory;
use PDO;

$params = [
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'port'      => '3306',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => 'password',
    'charset'   => 'utf8mb4',
    'options'   => [
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ],
];

$db = ConnectionFactory::create($params);

Example Queries

$sql = 'SELECT * FROM `users`;';
$db->execute($sql);


$sql = 'SELECT * FROM `users` LIMIT ?;';
$db->execute($sql, [50]);


$sql = 'SELECT * FROM `users` LIMIT :limit;';
$db->execute($sql, ['limit' => 50]);


$sql = 'INSERT INTO `users` (`name`, `email`, `address`) VALUES (:name, :email, :address);';
$bindings = [
    'name'    => 'User Test',
    'email'   => 'test@test.com',
    'address' => 'UA',
];
$db->execute($sql, $bindings);


$sql = 'INSERT INTO `users` (`name`, `email`, `address`) VALUES (?, ?, ?);';
$bindings = [
    'User Test',
    'test@test.com',
    'UA',
];
$db->execute($sql, $bindings);