通过PHP或Android处理SQLite时是否需要在更新后读取并随后验证更新的数据?
例如,
如果以下代码返回TRUE,是否表示一切正常,并且不需要通过读取数据进行验证以及与原始数据进行比较?
public function updateRecord($C_ID,$C_Data)
{
try
{
$sql = "UPDATE C "
. "SET C_Data = :C_Data "
. "WHERE C_ID = :C_ID";
$stmt = $this->pdo->prepare($sql);
$stmt->bindValue(':C_ID', $C_ID);
$stmt->bindValue(':C_Data', $C_Data);
$stmt->execute();
return TRUE;
}
catch (\PDOException $e)
{
return FALSE;
}
}
最佳答案
SQLite保证ACID原则,其中A是原子性,C是一致性。
原子性是指在修改数据库(db)状态时写入完全失败并被回滚或完全成功的想法。
一致性是指这样的想法,即只要您遵循事务性db写入的原则,就可以保证它以维护数据库“状态”的方式被写入(只要操作返回成功),即您定义的所有关系很满意。
从 official documentation-SQLite实现可序列化的事务
原子的,一致的,孤立的和持久的,即使
事务因程序崩溃而中断,
操作系统崩溃或计算机电源故障。
当然,您可能最终会错误地编写事务,因此,由于数据一致性不能保证数据的正确性,因此您应该实施测试用例并处理数据库写入的异常。
关于php - 通过PHP或Android处理SQLite时是否需要在更新后读取并随后验证更新的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55700755/