r1ko / database-connection
Simple PDO Wrapper
1.0.2
2021-09-16 14:52 UTC
Requires
- php: >=7.4
- ext-pdo: *
Requires (Dev)
- fakerphp/faker: ^1.13
- phpstan/phpstan: ^0.12.81
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: *
- vimeo/psalm: ^4.6
- vlucas/phpdotenv: ^5.3
This package is auto-updated.
Last update: 2024-04-16 18:13:25 UTC
README
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);