更改php-interbase默认事务行为

问题描述:

我有一些PHP CLI脚本运行了很长时间(24小时以上),虽然他们定期提交,但我在孤立事务中遇到了一些问题 - 可能是脚本崩溃导致的。更改php-interbase默认事务行为

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

$ dbh = ibase_connect($ dbhost,$ dbuser,$ dbpass); $ trans = ibase_trans(IBASE_WRITE + IBASE_COMMITTED + IBASE_REC_VERSION + IBASE_WAIT,$ dbh);

现在已升级到php 5.3.5,发现ibase_trans行会导致分段错误。在php ibase_trans页面有一个注释:

“这个函数的行为在PHP 5.0.0中已经改变了,第一次调用ibase_trans()将不会返回连接的默认事务。

所以我的问题是我是否可以设置默认交易的交易参数......第二个问题,无论如何,我是否完全错过了试图做到这一点!

谢谢

你不应该使用默认事务。

定义您的交易为folows:运行查询

$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