对一组数据的多个请求

时间:2015-08-02 21:11:07

标签: php mysql sql

我不完全确定如何说出来,但我的例子应该有所帮助。我遇到了以下问题:

拍卖中有3位投标人:

  • 第一个出价1美元,他们的帐户将扣除此金额。
  • 第二个投标人出价2美元,因此第一个出价被退还,而第二个出价被扣除。
  • 但是,退还第一个投标人的脚本尚未完成,第三个投标人发出了3美元的投标请求。
  • 由于剧本尚未完成,它仍然会将第一个竞标者取得最高价,因此开始再次退款。

所有这些脚本执行完毕后,投标人1获得两次退款投标人2的出价刚刚消失

我使用mysql存储有关出价的信息,使用php来执行请求。

我听说Database Transactions可能会有所帮助,但我并不完全确定如何。

1 个答案:

答案 0 :(得分:3)

您的第二个脚本包含两个与数据库的交互。默认情况下,每个DB语句都作为单个事务执行。在您的情况下,您需要将第二个脚本的两个交互作为单个事务进行。这可以防止第三个脚本(也应该作为单个事务运行)在第二个脚本完成之前启动。有关使用php和mysql执行多语句事务的示例,请参阅PHP + MySQL transactions examples