Edit report at https://bugs.php.net/bug.php?id=63105&edit=1
ID: 63105 Comment by: ssuffic...@php.net Reported by: mar...@php.net Summary: Default transanction isolation level in PHP for Firebird in php.ini Status: Assigned Type: Feature/Change Request Package: InterBase related Operating System: All PHP Version: Irrelevant Assigned To: mariuz Block user comment: N Private report: N New Comment: 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. Previous Comments: ------------------------------------------------------------------------ [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] mar...@php.net Discussion on firebird php list http://tech.groups.yahoo.com/group/firebird-php/message/3758 ------------------------------------------------------------------------ [2012-09-18 07:18:47] mar...@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