2013-03-17 37 views
1

举例来说,如果我有这样的算法:如何使用PDO锁定sqlite数据库中的条目?

  1. 连接到数据库
  2. 尝试从数据库
  3. 如果选择了一些数据,该数据不存在
    1. 从某处获取数据
    2. 插入数据到数据库
  4. 关闭数据库连接
  5. 对数据进行处理
  6. 的东西,我们正在这样做

然后,如果PHP脚本启动和数据库没有数据,可能同时生成它(步3.1) ,另一个用户再次启动脚本。然后,我觉得somethink这样比较好:

  1. 连接到数据库
  2. 尝试从数据库中选择一些数据(如果条目已被锁定,脚本等待直到被解锁)
  3. 如果数据不存在
    1. 锁定数据库条目
    2. 从某处
    3. 获取数据插入数据到数据库
    4. 解锁数据库条目
  4. 关闭数据库连接
  5. 对数据进行处理
  6. 的东西,我们正在这样做

我如何能做到这一点? (我是SQL新手,也许有一个更合适的名字)

回答

1

做同样的transaction读取和可能的写作,那么数据库将确保两个用户不会互相干扰。

(请阅读ACID properties。)