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