PHP 4.0 Bug #7014 Updated: ibase_query (rest of php_interbase.dll?)

From: Date: Sat, 28 Oct 2000 03:45:00 +0000
Subject: PHP 4.0 Bug #7014 Updated: ibase_query (rest of php_interbase.dll?)
Groups: php.dev 
Request: Send a blank email to php-dev+get-36178@lists.php.net to get a copy of this message
ID: 7014 Updated by: jah Reported By: jccann@home.com Status: Feedback Bug Type: InterBase related Assigned To: Comments: This is, I hope, fixed (can't test it because I don't have any Windows machine).You should fetch php4.0.4-dev for win32 from http://www.php4win.de. Or if you would rather stay with a release version, php4.0.3 for win32 from the same place and contact me (jah@php.net) directly for an updated version of php_interbase.dll (thanks to Daniel Beulshausen for compiling it), there was still one critical InterBase-related bug in 4.0.3. Previous Comments: --------------------------------------------------------------------------- [2000-10-04 10:29:37] jccann@home.com Environment: Binary distro of PHP 4.0.2 NT 4.0 (SP5) Apache 1.3.2 Interbase ISQL Version: WI-V6.0.0.627 InterBase/x86/Windows NT (access method), version "WI- V6.0.0.627" on disk structure version 10.0 When I try to fetch a record using ibase_query that is encapsulated into a class, it does not work and I receive: "Warning: InterBase: invalid transaction handle (expecting explicit transaction start) in c:program filesapache groupapachehtdocsibasetest.php on line 30" Run the following script to duplicate. Note that if you comment lines 2-19 and 38-48, you will run the fetch without creating the object. In this case (non-object), the fetch works. BTW - The uncommented (i.e., object version) works great on my Linux box (PHP 4.0.0 + Interbase 6.0). Thanks. P.S. If you need interbase testing or test scripts, I would be happy to help. The interbase DLL is *really* shaky in NT for PHP 4.0.2. --------- IbaseTest.php ----------- <?php /* Comment from here */ include_once( 'Audit.php' ); include_once( 'Form.php' ); class IbaseTest { function insert() { $sql = "INSERT INTO AUDITS ( AUDIT_ID, INSERT_USER, INSERT_DATE ) VALUES ( GEN_ID( AUDIT_GEN, 1 ), 'IbaseTest', 'NOW' );"; echo "instantiate IbaseTest()<br>"; $form = new Form(); echo "insertRecord()<br>"; $form->insertRecord( $sql ); } function fetch() { /* to here to make this work (more comments below) */ $sql = "SELECT MAX(AUDIT_ID) FROM AUDITS;"; $dbServer = "localhost"; $passwd = "x8fg73ca"; $dbName = "C:Program FilesBORLANDInterBasedatamut.gdb"; $user = "mtnunion"; $connect = $dbServer . ":" . $dbName; echo "connect<br>"; $dbh = ibase_connect( $connect, $user, $passwd ); echo "connection handle: $dbh<br>"; echo "query<br>"; $sth = ibase_query( $sql, $dbh ); echo "fetch_row<br>"; $row = ibase_fetch_row ( $sth ); echo "free_result<br>"; ibase_free_result( $sth ); echo "close<br>"; ibase_close( $dbh ); echo "fetched id: $row[0]<br>"; /* comment to end of script */ } } echo "instantiate IbaseTest()<br>"; $test = new IbaseTest(); echo "insert()<br>"; $test->insert(); echo "fetch()<br>"; $test->fetch(); /**/ ?> --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=7014

« previous php.dev (#36178) next »