我有一些php cli脚本长时间运行(24小时加),虽然他们做了常规'提交我对孤立事务有一些问题 - 可能是由脚本崩溃的脚本引起的。

我的解决方案是为了创建交易,如下所示 - 这是一年前,我研究了这个,不能完全记住这些设置的精确原因,但似乎可以解决数据库的一些问题。

$ dbh= ibase_connect($ dbhost,$ dbuser,$ dbpass); $ trans= ibase_trans(ibase_write + ibase_commited + ibase_rec_version + ibase_wait,$ dbh);

现在已升级到PHP 5.3.5,发现IBASE_TRANS线导致分段错误。在PHP IBASE_TRANS页面上有一个注释:

“PHP 5.0.0中此功能的行为已更改。对IBASE_TRANS()的第一个调用将不会返回连接的默认事务。” 所以我的问题是我是否可以为默认事务设置事务参数......辅助问题,无论我是否完全错过了尝试这样做!

感谢

有帮助吗?

解决方案

您不应该使用默认事务。

将您的交易定义为叶子:

$T = ibase_trans($params, $database);
.

运行查询后:

 ibase_query($T, $SQL, $Params)
.

或者您可以使用ibase_prepare&ibase_execute。

后,呼叫

ibase_commit_ret($T); // this mentain transaction active
.

ibase_commit($T) // this commit work close transaction
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top