PHP SQL Server: Обновление

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

Автор статей, ИБ-специалист