Метод executeStatement
Метод executeStatement класса Connection
используется для выполнения SQL-запросов, которые
не возвращают результат в виде набора строк. Обычно
это запросы INSERT, UPDATE или DELETE.
Первым параметром передаётся SQL-строка, вторым -
массив параметров для подстановки в запрос.
Метод возвращает количество затронутых строк.
Синтаксис
executeStatement(string $sql, array $params = [], array $types = []): int
Пример
Давайте вставим новую запись в таблицу article:
<?php
namespace App\Controller;
use Doctrine\DBAL\Connection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(Connection $connection): Response
{
$sql = 'INSERT INTO article (title, content) VALUES (?, ?)';
$count = $connection->executeStatement($sql, ['article', 'text']);
return new Response('Inserted rows: ' . $count);
}
}
?>
Результат выполнения кода:
"Inserted rows: 1"
Пример
Давайте обновим запись с идентификатором 1:
<?php
namespace App\Controller;
use Doctrine\DBAL\Connection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(Connection $connection): Response
{
$sql = 'UPDATE article SET title = ? WHERE id = ?';
$count = $connection->executeStatement($sql, ['abcde', 1]);
return new Response('Updated rows: ' . $count);
}
}
?>
Результат выполнения кода:
"Updated rows: 1"
Пример
Давайте удалим запись с идентификатором 2:
<?php
namespace App\Controller;
use Doctrine\DBAL\Connection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(Connection $connection): Response
{
$sql = 'DELETE FROM article WHERE id = ?';
$count = $connection->executeStatement($sql, [2]);
return new Response('Deleted rows: ' . $count);
}
}
?>
Результат выполнения кода:
"Deleted rows: 1"
Смотрите также
-
класс
Connection,
который управляет подключением к базе данных -
метод
executeQuery,
который выполняет SQL-запросы с возвратом результата -
метод
insert,
который вставляет запись в таблицу -
метод
update,
который обновляет записи в таблице