Изменена поведение транзакции PHP-InterBase по умолчанию
Вопрос
У меня есть несколько сценариев PHP CLI, которые работают в течение длительного времени (24 часа плюс), и хотя они делают регулярные «У меня были некоторые проблемы с осиротами, - возможно, вызванные выключенными скриптами.
Мое решение было созданию транзакции следующим образом - это было год назад, что я исследовал это и не могу вспомнить точные причины для этих настроек, но казалось, что решает некоторые проблемы с базой данных.
$ dbh= ibase_connect ($ dbhost, $ dbuser, $ dbpass); $ trans= ibase_trans (ibase_write + ibase_commed + 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
.