ID: 34495 Updated by: [EMAIL PROTECTED] Reported By: pookey at pookey dot co dot uk -Status: Assigned +Status: Feedback Bug Type: DBM/DBA related Operating System: Linux PHP Version: 5CVS-2005-09-14 (snap) Assigned To: helly New Comment:
Please try this patch (against 5.1RC5-dev): http://php.net/~helly/php/ext/dba/dba-db4-20051107.diff.txt Previous Comments: ------------------------------------------------------------------------ [2005-09-14 15:45:12] [EMAIL PROTECTED] Thanks for the fix - should I add a note to php.net under dba_popen about this not working in pre-5.1 ? ------------------------------------------------------------------------ [2005-09-14 15:11:47] [EMAIL PROTECTED] RCS file: /repository/php-src/ext/dba/dba_db4.c,v revision 1.10 date: 2003/06/21 18:16:38; author: helly; state: Exp; lines: +4 -0 When persistent then we may use threads Removing this part: + if (info->flags & DBA_PERSISTENT) { + gmode |= DB_THREAD; + } + Makes dba_fetch() work with db4 driver also if opened in persistent mode. ------------------------------------------------------------------------ [2005-09-14 03:04:01] pookey at pookey dot co dot uk I've updated this page with a lot more information: http://xian.ncuk.net/test/bug.php It appears it's just db4 with the problem ------------------------------------------------------------------------ [2005-09-14 01:37:12] pookey at pookey dot co dot uk Description: ------------ where the use of dba_open works, dba_popen does not. http://xian.ncuk.net/test/bug.php http://xian.ncuk.net/test/bug.phps Reproduce code: --------------- $file = dirname(__FILE__) . '/dbtest.db'; $db = dba_open($file, "c", "db4"); dba_insert('moo', 'baa', $db); $value = dba_fetch('moo', $db); echo "<b>non-persistant check:</b> $value <hr />"; dba_sync($db); dba_close($db); $db = dba_popen($file, "c", "db4"); $value = dba_fetch('moo', $db); echo "<b>persistant check:</b> $value <hr />"; dba_close($db); $db = dba_open($file, "c", "db4"); $value = dba_fetch('moo', $db); echo "<b>non-persistant check:</b> $value <hr />"; dba_delete('moo', $db); dba_close($db); Expected result: ---------------- all 3 echo statements ina bove should print 'baa'. Actual result: -------------- the middle echo statement doesn't print baa ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=34495&edit=1