【问题标题】:PHP + MySQL + Session TransactionPHP + MySQL + 会话事务
【发布时间】:2012-06-06 14:19:14
【问题描述】:

我正在开发一个使用服务器来同步数据的应用程序,该服务器将使用 php 和一个 mysql 数据库。

对于同步过程,我认为是 3 路通信:

1 - 客户端将数据发送到服务器,服务器处理数据并以 OK 或 ERROR 回复客户端,此时服务器应该开始事务。 2 - 客户端如果收到 OK 只是更新内部信息(更新日期并从数据库中删除一些行) 3 - 客户端向服务器发送另一个请求(OK 或 CANCEL),当服务器收到这个新请求时,它会提交或回滚事务。

这可能吗?在一个请求中启动事务并在另一个请求中提交事务? 如果是,如何?会话?

或者我应该以其他方式这样做吗?

【问题讨论】:

标签: php mysql session transactions


【解决方案1】:

在 php 中,您不应该在会话中存储对象(需要引用)。所以我要做的是将数据存储到会话中,当您收到来自客户端的确认时,检索数据并组装查询(mysqli 或 PDO,您喜欢的那个)。

除非您需要使用数据库中的一些数据(即 last_inser_id),否则这将起作用脚本结束时的数据库会话)

【讨论】:

  • 如果需要来自上一个数据库请求的额外数据(如插入id),在PDO或MySQLi的情况下;你可以做$pdoObject->lastInsertId();$mysqliObject->insert_id
  • 有两个不同的请求,lastInsertIdinsert_id 不会返回插入另一个会话的 id。如果您禁用自动清理,您可以使用持久连接,但我不建议这样做。(php.net/manual/en/mysqli.persistconns.php
猜你喜欢
  • 2012-12-08
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多