Req #63105 [Asn->Opn]: Default transanction isolation level in PHP for Firebird in php.ini
Edit report at https://bugs.php.net/bug.php?id=63105&edit=1
ID: 63105
Updated by: kalle@php.net
Reported by: mariuz@php.net
Summary: Default transanction isolation level in PHP for
Firebird in php.ini
-Status: Assigned
+Status: Open
Type: Feature/Change Request
Package: InterBase related
Operating System: All
PHP Version: Irrelevant
-Assigned To: mariuz
+Assigned To:
Block user comment: N
Private report: N
Previous Comments:
------------------------------------------------------------------------
[2013-09-26 05:16:52] ssufficool@php.net
If this option could apply to multiple database drivers, I would remove the FB_
prefix and translate to the driver specific implementations transparently. An
abstraction should not be specific to an implementation.
The driver could throw a catchable "not supported" PDOException if transaction
isolation is not suported by the driver or the requested isolation level is not
supported.
------------------------------------------------------------------------
[2013-09-25 04:59:36] slavb18 at gmail dot com
examples:
$pdo->setAttribute(PDO::ATTR_READONLY, FALSE); // read-write transaction (Default)
$pdo->setAttribute(PDO::ATTR_READONLY, TRUE); // readonly transaction
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 0); // no_wait
$pdo->setAttribute(PDO::ATTR_TIMEOUT, -1); // wait
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 4); // wait timeout 4 seconds
$pdo->setAttribute(PDO::FB_TRANS_ISOLATION_LEVEL, PDO::FB_TRANS_COMMITTED); //read committed
(default)
... etc FB_TRANS_COMMITTED_NO_REC_VERSION, FB_TRANS_CONCURRENCY, FB_TRANS_CONCURRENCY
------------------------------------------------------------------------
[2012-09-18 07:52:40] mariuz@php.net
Discussion on firebird php list
http://tech.groups.yahoo.com/group/firebird-php/message/3758
------------------------------------------------------------------------
[2012-09-18 07:18:47] mariuz@php.net
Description:
------------
If you start a new transaction (or if one is started internally, where you
cannot change the isolation level) where you donât explicitly specify isolation
level the IBASE_DEFAULT is used. But this is
IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT. This is read-write wait transaction in
concurrency mode. This mode is most restrictive, nothing close to read committed.
And to make it worse, thereâs no way to change this default value in runtime. You
can only do it recompiling sources, nothing to be viable in most cases.
http://blog.cincura.net/233007-default-transanction-isolation-level-in-php-for-
firebird/
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=63105&edit=1
Thread (6 messages)