Метод update класса Connection
Метод update класса Connection
выполняет SQL-запрос UPDATE и возвращает
количество строк, которые были изменены.
Первым параметром передаётся имя таблицы,
вторым - массив с новыми значениями колонок,
третьим - массив с условиями отбора строк.
Четвёртым необязательным параметром можно
передать массив с типами данных для колонок.
Синтаксис
$res = $connection->update(
string $table,
array $data,
array $criteria,
array $types = []
);
Пример
Давайте обновим поле name у записи с id = 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
{
$res = $connection->update(
'article',
['name' => 'abcde'],
['id' => 1]
);
return new Response($res);
}
}
?>
Результат выполнения кода:
1
Пример
Давайте обновим сразу несколько колонок у записей с active = 0:
<?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
{
$res = $connection->update(
'article',
[
'name' => 'user',
'active' => true
],
['active' => false]
);
return new Response($res);
}
}
?>
Результат выполнения кода:
3
Пример
Давайте передадим типы данных для колонок явно:
<?php
namespace App\Controller;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\ParameterType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(Connection $connection): Response
{
$res = $connection->update(
'article',
['name' => 'hello'],
['id' => 1],
['id' => ParameterType::INTEGER]
);
return new Response($res);
}
}
?>
Результат выполнения кода:
1
Смотрите также
-
класс
Connection,
который управляет соединением с базой данных -
метод
executeStatement,
который выполняет произвольный SQL-запрос -
метод
insert,
который вставляет новые записи в таблицу -
метод
delete,
который удаляет записи из таблицы