2011-03-27 121 views
2

我有一些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()將不會返回連接的默認事務。

所以我的問題是我是否可以設置默認交易的交易參數......第二個問題,無論如何,我是否完全錯過了試圖做到這一點!

謝謝

回答

0

你不應該使用默認事務。

定義您的交易爲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