PHP:PDO事务和Sessions之间是否存在关系?

时间:2015-05-15 00:34:00

标签: php yii pdo transactions session-variables

我目前正在开发一个使用Yii的项目,偶然发现了一些令我头疼的事情。我使用Yii(它只调用PDO :: beginTransaction)启动了一个db事务,并做了一些数据库工作,最后为用户存储了一条flash消息并进行了重定向。我忘了提交事务,所以没有任何东西存储在我的数据库中,但引起我注意的是我的flash消息也没有出现。执行提交或回滚会使flash消息显示正常。

基本上,我注意到我无法存储任何与会话相关的数据,并且如果我启动了一个事务并且没有提交/回滚,那么它会在重定向后坚持下去。我通常不会让交易挂起,所以我之前从未注意到这种行为。

那么2会阻止Sessions正常工作吗?

1 个答案:

答案 0 :(得分:0)

会话在请求结束时写入数据库。如果进行显式回滚,它仍会被写入事务之外的数据库。如果不这样做,则在运行会话保存查询后隐式发生回滚。