更改了php interbase默认事务行为

更改了php interbase默认事务行为,php,firebird,interbase,Php,Firebird,Interbase,我有一些PHP CLI脚本可以运行很长时间(24小时以上),尽管它们执行常规的“提交”,但我在孤立事务方面遇到了一些问题——可能是由于脚本崩溃造成的 我的解决方案是按如下方式创建事务-我是在一年前对此进行研究的,不太记得这些设置的确切原因,但它似乎解决了数据库的一些问题 $dbh=ibase_connect($dbhost、$dbuser、$dbpass); $trans=ibase\u trans(ibase\u WRITE+ibase\u COMMITTED+ibase\u REC\u VE

我有一些PHP CLI脚本可以运行很长时间(24小时以上),尽管它们执行常规的“提交”,但我在孤立事务方面遇到了一些问题——可能是由于脚本崩溃造成的

我的解决方案是按如下方式创建事务-我是在一年前对此进行研究的,不太记得这些设置的确切原因,但它似乎解决了数据库的一些问题

$dbh=ibase_connect($dbhost、$dbuser、$dbpass); $trans=ibase\u trans(ibase\u WRITE+ibase\u COMMITTED+ibase\u REC\u VERSION+ibase\u WAIT,$dbh)

现在已升级到PHP5.3.5,并发现ibase_trans line导致分段错误。在php ibase_trans页面上有一个注释:

“此函数的行为已在PHP 5.0.0中更改。对ibase_trans()的第一次调用将不会返回连接的默认事务。”

所以我的问题是我是否可以为默认事务设置事务参数。。。第二个问题,不管怎样,我是否完全忽略了尝试这样做的意义


谢谢

您不应该使用默认事务

将您的交易定义为以下内容:

$T = ibase_trans($params, $database);
运行查询后:

 ibase_query($T, $SQL, $Params)
或者您也可以使用ibase\u prepare和ibase\u execute

之后,打电话

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


您不应该使用默认事务

将您的交易定义为以下内容:

$T = ibase_trans($params, $database);
运行查询后:

 ibase_query($T, $SQL, $Params)
或者您也可以使用ibase\u prepare和ibase\u execute

之后,打电话

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