Skip to main content

SQLite PHP使用PDO更新SQLite表中的数据

从PHP更新SQLite数据库中数据的步骤

更新数据的过程与插入数据的过程类似。要更新表中的数据,请使用以下步骤:

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()方法中,我们使用update语句更新tasks表的completed和completed_date列。

假设您想用id 2标记任务已完成,请在索引中使用以下代码。php文件。

SQLite PHP Update Data

<?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.';

执行索引。php脚本,我们得到以下消息:

Task #2 has been completed

让我们使用以下SELECT语句验证更新:

SELECT *
FROM tasks
WHERE task_id = 2;

SQLite PHP update example

id为2的任务已更新,如上面的屏幕截图所示。

要获得受UPDATE语句影响的行数,可以使用PDOStatement对象的rowCount()方法。

<?php
$stmt->rowCount();

在本教程中,我们向您展示了如何使用PHP PDO更新SQLite表中的数据。