php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #63105 Default transanction isolation level in PHP for Firebird in php.ini
Submitted: 2012-09-18 07:18 UTC Modified: 2021-03-31 11:36 UTC
Votes:5
Avg. Score:4.8 ± 0.4
Reproduced:4 of 4 (100.0%)
Same Version:2 (50.0%)
Same OS:3 (75.0%)
From: mariuz@php.net Assigned:
Status: Suspended Package: InterBase related
PHP Version: Irrelevant OS: All
Private report: No CVE-ID: None
 [2012-09-18 07:18 UTC] 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/


Patches

php5-bug63105.patch (last revision 2013-09-25 04:47 UTC by slavb18 at gmail dot com)

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2012-09-18 07:52 UTC] mariuz@php.net
Discussion on firebird php list 


http://tech.groups.yahoo.com/group/firebird-php/message/3758
 [2012-11-23 13:24 UTC] mariuz@php.net
-Assigned To: +Assigned To: mariuz
 [2013-09-25 04:59 UTC] 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
 [2013-09-26 05:16 UTC] 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.
 [2017-10-24 06:45 UTC] kalle@php.net
-Status: Assigned +Status: Open -Assigned To: mariuz +Assigned To:
 [2021-03-31 11:36 UTC] cmb@php.net
-Status: Open +Status: Suspended
 [2021-03-31 11:36 UTC] cmb@php.net
The interbase extension is moved to PECL[1] as of PHP 7.4.0, and
is looking for a new maintainer.  Until a new maintainer is found,
I suspend this ticket.

Consider to use the bundled PDO_Firebird extension, or the
php-firebird package[2] instead.

[1] <https://pecl.php.net/package/interbase>
[2] <https://github.com/FirebirdSQL/php-firebird>
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Dec 27 03:01:28 2024 UTC