1. Go to this page and download the library: Download jardisadapter/dbconnection library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jardisadapter / dbconnection example snippets
use JardisAdapter\DbConnection\Factory\ConnectionFactory;
$factory = new ConnectionFactory();
// Create a MySQL connection and run a query
$connection = $factory->mysql(
host: 'localhost',
user: 'app_user',
password: 'secret',
database: 'mydb'
);
$pdo = $connection->pdo();
$users = $pdo->query('SELECT * FROM users')->fetchAll();
use JardisAdapter\DbConnection\Factory\ConnectionFactory;
use JardisAdapter\DbConnection\ConnectionPool;
use JardisAdapter\DbConnection\Config\ConnectionPoolConfig;
$factory = new ConnectionFactory();
// Primary writer + two read replicas
$pool = new ConnectionPool(
writer: $factory->mysql('primary.db', 'user', 'secret', 'mydb'),
readers: [
$factory->mysql('replica1.db', 'user', 'secret', 'mydb'),
$factory->mysql('replica2.db', 'user', 'secret', 'mydb'),
],
config: new ConnectionPoolConfig(validateConnections: true)
);
// Writes go to the primary
$pool->getWriter()->pdo()->exec('INSERT INTO orders (total) VALUES (99.99)');
// Reads are distributed round-robin across replicas
$orders = $pool->getReader()->pdo()->query('SELECT * FROM orders')->fetchAll();
// Inspect pool activity
$stats = $pool->getStats();
// ['reads' => 1, 'writes' => 1, 'failovers' => 0, 'readers' => 2]
// Transactions on a dedicated connection
$conn = $factory->postgres('localhost', 'user', 'secret', 'mydb');
$conn->beginTransaction();
try {
$conn->pdo()->exec('UPDATE accounts SET balance = balance - 100 WHERE id = 1');
$conn->pdo()->exec('UPDATE accounts SET balance = balance + 100 WHERE id = 2');
$conn->commit();
} catch (\Throwable $e) {
$conn->rollback();
throw $e;
}
// Wrap an existing PDO from a legacy system
$legacy = $factory->fromPdo($existingPdo);