Указать путь к файлу в $host или setHost()
Для БД в памяти - указать :memory:
.
pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass
- user - Имя пользователя для соединения. Модуль PDO проигнорирует значение, которое передали как аргумент конструктора, если указать имя пользователя в DSN-имени.
- password - Пароль пользователя для соединения. Модуль PDO проигнорирует значение, которое передали как аргумент конструктора, если задать пароль в DSN-имени.
- sslmode - https://www.postgresql.org/docs/17/libpq-connect.html
require_once __DIR__ . '/vendor/autoload.php';
$config =
(new \Arris\Database\LazyPDOConfig())
->setUsername('arris')
->setPassword('password')
->setDatabase('test');
$pdo = $config->connect();
// or
$pdo = new \Arris\Database\LazyPDO($config);
$pdo->query('SELECT * FROM phpauth_users');
$pdo->exec('UPDATE phpauth_users SET dt = NOW() WHERE id = 1');
$sth = $pdo->prepare('SELECT * FROM phpauth_users WHERE id = ?');
$sth->exec([ 1 ]);
// Получаем статистику
echo "Всего запросов: " . $pdo->stats()->getQueryCount() . "\n";
echo "Общее время запросов: " . $pdo->stats()->getTotalQueryTime() . " сек\n";
// Детальная информация о запросах
print_r($pdo->stats()->getQueries());
OR
$pdo->query("TRUNCATE TABLE test");
$sth = $pdo->prepare("/* insert data */ INSERT INTO test (property, value) VALUES (:s, :v)");
for ($i=1; $i<100000; $i++){
$sth->execute([
's' => 'option_' . $i,
'v' => mt_rand(100, 10000)
]);
}
var_dump( $pdo->query("/* select query */ SELECT * FROM test ORDER BY RAND() LIMIT 1")->fetch() );
// Получаем статистику
echo "Всего запросов: " . $pdo->stats()->getQueryCount() . "\n";
echo "Всего подготовленных запросов: " . $pdo->stats()->getPreparedQueryCount() . "\n";
echo "Общее время запросов: " . $pdo->stats()->getTotalQueryTime() . " сек\n";
$stats = $pdo->getStats();
echo "Всего запросов: " . $stats->getTotalQueryCount() . "\n";
echo "Медленных запросов: " . $stats->getSlowQueriesCount() . "\n";
echo "Порог медленных запросов: " . $stats->getSlowQueryThreshold() . " сек\n";
// Детальная информация о медленных запросах
echo "Медленные запросы:\n";
foreach ($stats->getSlowQueries() as $query) {
printf(
"Запрос: %s\nВремя: %.3f сек\nПараметры: %s\n\n",
$query['query'],
$query['time'],
json_encode($query['params'] ?? [])
);
}