В этом уроке вы узнаете, как обновлять данные из таблицы с помощью 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 для обновления данных в таблице.