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:
- Conecte-se ao banco de dados SQLite criando uma instância da classe PDO.
- Prepare uma instrução DELETE para execução.
- Passe valores para a instrução usando o
bindValue()
método doPDOStatement
objeto. - Chame o
execute()
método doPDOStatement
objeto para executar a instrução delete. - Chame o
rowCount()
método dePDOStatement
para obter o número de linhas excluídas.
SQLite PHP: excluir exemplos de dados
Usaremos o projects
e tasks
que criamos no tutorial anterior para a demonstração.
Primeiro, criamos a SQLiteDelete
classe na app
pasta.
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 PDOStatement
objeto.
Usamos o bindValue()
método para passar o valor do ID da tarefa para a DELETE
instruçã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 DELETE
instruçã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.php
script para testar a SQLiteDelete
classe.
<?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: 1
Linguagem 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.