В этом уроке вы узнаете, как обновлять данные из таблицы с помощью PHP PDO.
Этот урок начинается с того места, где закончился урок по нумерации страниц.
Мы обновим строку из таблицы «Авторы», указанную по идентификатору автора.
Обновление данных
Шаг 1. Определите метод update() в классе AuthorDB, который обновляет автора:
public function update(Author $author)
{
$sql = 'UPDATE Authors
SET FirstName = :firstName, LastName = :lastName, BirthDate = :birthDate
WHERE AuthorID = :id';
$stmt = $this->conn->prepare($sql);
$stmt->execute([
'firstName' => $author->getFirstName(),
'lastName' => $author->getLastName(),
'birthDate' => $author->getBirthDate(),
'id' => $author->getId()
]);
return $stmt->rowCount() > 0;
}
Как это работает.
Сначала определите публичный метод update(), который принимает объект Author в качестве параметра:
public function update(Author $author)
Во-вторых, создайте оператор UPDATE, который обновляет имя, фамилию и дату рождения автора, указанного идентификатором:
$sql = 'UPDATE Authors
SET FirstName = :firstName, LastName = :lastName, BirthDate = :birthDate
WHERE AuthorID = :id';
В-третьих, создайте подготовленный оператор для выполнения оператора UPDATE :
$stmt = $this->conn->prepare($sql);
В-четвертых, выполните подготовленный оператор со значениями, полученными из объекта Author:
$stmt->execute([ 'firstName' => $author->getFirstName(), 'lastName' => $author->getLastName(), 'birthDate' => $author->getBirthDate(), 'id' => $author->getId() ]);
Наконец, верните true, если количество обновленных строк больше 0:
return $stmt->rowCount() > 0;
Шаг 2. Измените файл index.php, чтобы использовать метод update():
findById(1);
// change the birth date
$author->setBirthDate('1980-06-30');
// Update the author
$authorDB->update($author);
Как это работает.
Сначала загрузите файл authordb.php, чтобы использовать класс AuthorDB.
require_once 'authordb.php';
Во-вторых, подключитесь к SQL Server и назначьте возвращенный объект PDO переменной $conn:
$conn = require_once 'connect.php';
В-третьих, создайте новый объект AuthorDB:
$authorDB = new AuthorDB($conn);
В-четвертых, найдите объект Author с идентификатором 1:
$author = $authorDB->findById(1);
В-пятых, обновите дату рождения на 1980-06-30, предполагая, что автор с идентификатором 1 существует в таблице «Авторы»:
$author->setBirthDate('1980-06-30');
Наконец, вызовите метод update() объекта AuthorDB, чтобы обновить автора:
$authorDB->update($author);
Шаг 3. Проверьте обновление.
Откройте SQL Server Management Studio(SSMS), подключитесь к SQL Server и выполните следующий запрос:
SELECT * FROM authors WHERE AuthorID = 1;
Выход:
AuthorID | FirstName | LastName | BirthDate ---------+-----------+----------+------------ 1 | Anthony | Pham | 1980-06-30 (1 row)
В выводе указано, что дата рождения автора с идентификатором 1 обновлена на 1980-06-30.
Краткое содержание
- Выполните оператор UPDATE для обновления данных в таблице.

