php连接interbase,Firebird/InterBase 函数

2022-06-29 00:00:00 专区 订阅 付费 交易 评论

[#4]

lars at dybdahl dot net [2002-09-20 07:32:15]

It is not possible to use interbase/firebird without initiating transactions. It seems that transactions are not automatically committed or rolled back at the end of a script, so remember to end all interbase enabled scripts with ibase_rollback() or ibase_commit().

Worse is, that if you use ibase_pconnect (recommended), transactions survive from one request to the next. So that if you don't rollback your transaction at the end of the script, another user's request might continue the transaction that the first request opened.

This has two implications:

1) Clicking refresh in your browser won't make you see newer data, because you still watch data from the same transaction.

2) Some php scripts might fail occassionally and not fail in other occasions, depending on with apache server thread and thereby which transaction they start using.

Unfortunately, there is no such thing as

if (ibase_intransaction()) ibase_rollback();

so be sure that ALL your scripts end with an ibase_rollback() or ibase_commit();

相关文章