Обновление данных в таблице SQLite3 с использованием PHP PDO
В этом уроке я покажу, как обновлять данные в базе данных SQLite с помощью PHP PDO.
Шаги по обновлению данных в базе данных SQLite из PHP
Процесс обновления данных аналогичен процессу вставки данных . Чтобы обновить данные в таблице, используйте следующие шаги:
- Подключитесь к базе данных SQLite, создав новый объект PDO.
- Подготовьте оператор
UPDATE
, используя методprepare()
объекта PDO. Методprepare()
возвращает объектPDOStatement
. - Привязать значения к параметрам оператора
UPDATE
с помощью методаbindValue()
объектаPDOStatement
. - Выполните инструкцию
UPDATE
, вызвав методexecute()
объектаPDOStatement
. Методexecute()
возвращаетtrue
в случае успеха илиfalse
при ошибке.
SQLite PHP: пример обновления данных
Класс SQLiteUpdate
:
<?php namespace App; /** * PHP SQLite Update Demo */ class SQLiteUpdate { /** * PDO object * @var \PDO */ private $pdo; /** * Initialize the object with a specified PDO object */ public function __construct($pdo) { $this->pdo = $pdo; } /** * Mark a task specified by the task_id completed * @param type $taskId * @param type $completedDate * @return bool true if success and falase on failure */ public function completeTask($taskId, $completedDate) { // SQL statement to update status of a task to completed $sql = "UPDATE tasks " . "SET completed = 1, " . "completed_date = :completed_date " . "WHERE task_id = :task_id"; $stmt = $this->pdo->prepare($sql); // passing values to the parameters $stmt->bindValue(':task_id', $taskId); $stmt->bindValue(':completed_date', $completedDate); // execute the update statement return $stmt->execute(); } }
В методе completeTask()
мы обновляем поля complete
и complete_date
таблицы задач с помощью оператора UPDATE
.
Файл index.php
:
<?php require 'vendor/autoload.php'; use App\SQLiteConnection; use App\SQLiteUpdate; $pdo = (new SQLiteConnection())->connect(); $sqlite = new SQLiteUpdate($pdo); // mark task #2 as completed $taskId = 2; $result = $sqlite->completeTask($taskId, '2016-05-02'); if ($result) echo 'Task #$taskId has been completed'; else echo 'Whoops, something wrong happened.';
Выполнив скрипт index.php
, мы получили следующее сообщение:
Task #2 has been completed
Давайте проверим обновление, используя следующую инструкцию SELECT
:
SELECT * FROM tasks WHERE task_id = 2;
Мы должны увидеть, что задача с идентификатором 2
была обновлена.
Чтобы получить количество строк, затронутых оператором UPDATE
, нужно использовать метод rowCount()
объекта PDOStatement
.
$stmt->rowCount();
В этом уроке мы научились обновить данные в таблице SQLite с помощью PHP PDO.