SQLite PHP: Excluindo Dados

Resumo : neste tutorial, mostraremos as etapas de exclusão de dados em um banco de dados SQLite usando PHP PDO.

Etapas para excluir dados do PHP PDO

Para excluir dados em uma tabela no banco de dados SQLite de um aplicativo PHP, siga estas etapas:

  1. Conecte-se ao banco de dados SQLite criando uma instância da classe PDO.
  2. Prepare uma instrução DELETE para execução.
  3. Passe valores para a instrução usando o bindValue()método do PDOStatementobjeto.
  4. Chame o execute()método do PDOStatementobjeto para executar a instrução delete.
  5. Chame o rowCount()método de PDOStatementpara obter o número de linhas excluídas.

SQLite PHP: excluir exemplos de dados

Usaremos o projectse tasksque criamos no tutorial anterior para a demonstração.

Primeiro, criamos a SQLiteDeleteclasse na apppasta.

O deleteTask()método a seguir exclui uma tarefa por task_id. O método retorna o número de linhas excluídas chamando o rowCount()método do PDOStatementobjeto.

Usamos o bindValue()método para passar o valor do ID da tarefa para a DELETEinstrução.

    /**
     * Delete a task by task id
     * @param int $taskId
     * @return int the number of rows deleted
     */
    public function deleteTask($taskId) {
        $sql = 'DELETE FROM tasks '
                . 'WHERE task_id = :task_id';

        $stmt = $this->pdo->prepare($sql);
        $stmt->bindValue(':task_id', $taskId);

        $stmt->execute();

        return $stmt->rowCount();
    }Linguagem de código:  PHP  ( php )

O deleteTaskByProject() método exclui todas as tarefas associadas a um projeto especificado pelo ID do projeto.

Neste método, em vez de usar o bindValue()método para passar valores para a DELETEinstrução, passamos os valores de entrada como um array para o execute()método.

    /**
     * Delete all tasks associated with a project
     * @param int $projectId
     * @return int the number of rows deleted
     */
    public function deleteTaskByProject($projectId) {
        $sql = 'DELETE FROM tasks '
                . 'WHERE project_id = :project_id';

        $stmt = $this->pdo->prepare($sql);

        $stmt->execute([':project_id' => $projectId]);

        return $stmt->rowCount();
    }Linguagem de código:  PHP  ( php )

O método a seguir exclui um projeto especificado por um ID de projeto. Ele também retorna o número de linhas excluídas da tabela de projetos.

Além disso, devido à restrição de chave estrangeira, todas as tarefas associadas ao projeto também são excluídas. A rowCount()função não considera as linhas excluídas na tabela de tarefas.

    /**
     * Delete the project by project id
     * @param int $projectId
     * @return int the number of rows deleted
     */
    public function deleteProject($projectId) {
        $sql = 'DELETE FROM projects '
                . 'WHERE project_id = :project_id';

        $stmt = $this->pdo->prepare($sql);

        $stmt->execute([':project_id' => $projectId]);

        return $stmt->rowCount();
    }Linguagem de código:  PHP  ( php )

Segundo, criamos o index.phpscript para testar a SQLiteDeleteclasse.

<?php

require 'vendor/autoload.php';

use App\SQLiteConnection as SQLiteConnection;
use App\SQLiteDelete as SQLiteDelete;

$pdo = (new SQLiteConnection())->connect();
$sqlite = new SQLiteDelete($pdo);

// delete task id 1
$taskId = 1;
$rowDeleted = $sqlite->deleteTask($taskId);

echo 'The number of rows deleted: ' . $rowDeleted . '<br>';

// delete task associated with a project id 1
$projectId = 1;
$sqlite->deleteTaskByProject($projectId);

echo 'The number of task in the project #' . $projectId . ' deleted: ' . $rowDeleted . '<br>';

// delete project with id 1 and also its associated tasks
$projectId = 2;
$sqlite->deleteProject(2);
echo 'The number of project deleted: ' . $rowDeleted . '<br>';Linguagem de código:  PHP  ( php )

A seguir está a saída do script:

The number of rows deleted: 1
The number of task in the project #1 deleted: 1
The number of project deleted: 1Linguagem de código:  Sessão Shell  ( shell )

Neste tutorial, mostramos como excluir dados de uma ou mais tabelas do banco de dados SQLite usando PHP PDO.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *