Метод connection
Метод connection класса DB позволяет получить экземпляр соединения с базой данных для дальнейшей работы с ним. Первым параметром передаётся имя соединения, указанное в конфигурационном файле config/database.php. Если параметр не указан, используется соединение по умолчанию. Метод возвращает экземпляр IlluminateDatabaseConnection, через который можно выполнять запросы, управлять транзакциями и получать информацию о схеме.
Синтаксис
<?php
DB::connection($name);
?>
Пример
Давайте получим соединение с базой данных по умолчанию и выполним простой запрос:
<?php
use IlluminateSupportFacadesDB;
$connection = DB::connection();
$res = $connection->select('SELECT * FROM users WHERE id = ?', [1]);
var_dump($res);
?>
Результат выполнения кода:
array(1) {
[0] => object(stdClass)#1 (4) {
["id"] => int(1)
["name"] => string(5) "user1"
["email"] => string(14) "user1@example.com"
["created_at"] => string(19) "2026-01-01 10:00:00"
}
}
Пример
Давайте укажем конкретное соединение из файла конфигурации:
<?php
use IlluminateSupportFacadesDB;
$connection = DB::connection('pgsql');
$res = $connection->select('SELECT * FROM posts WHERE status = ?', ['active']);
foreach ($res as $post) {
echo $post->title;
}
?>
Результат выполнения кода:
"Post 1"
"Post 2"
"Post 3"
Пример
Давайте выполним запрос напрямую через метод connection без сохранения экземпляра:
<?php
use IlluminateSupportFacadesDB;
$res = DB::connection('mysql')->selectOne('SELECT COUNT(*) as total FROM articles WHERE published = ?', [true]);
echo $res->total;
?>
Результат выполнения кода:
"42"
Пример
Давайте используем метод connection для управления транзакцией в определённом соединении:
<?php
use IlluminateSupportFacadesDB;
$connection = DB::connection('mysql');
$connection->beginTransaction();
try {
$connection->insert('INSERT INTO logs (message, level) VALUES (?, ?)', ['System started', 'info']);
$connection->insert('INSERT INTO logs (message, level) VALUES (?, ?)', ['User logged in', 'info']);
$connection->commit();
echo "Transaction committed successfully";
} catch (Exception $e) {
$connection->rollBack();
echo "Transaction rolled back";
}
?>
Результат выполнения кода:
"Transaction committed successfully"
Смотрите также
-
метод
table,
который возвращает построитель запросов для указанной таблицы -
метод
select,
который выполняет SELECT-запрос и возвращает результат -
метод
transaction,
который выполняет операции в транзакции -
метод
raw,
который создаёт сырое выражение для запроса