ID: 35386 Updated by: [EMAIL PROTECTED] Reported By: slapaf at hotmail dot com -Status: Assigned +Status: Open Bug Type: PDO related Operating System: winxp sp2 PHP Version: 5CVS-2006-12-02 (snap) Assigned To: wez New Comment:
Looking for someone to maintain the firebird driver. Previous Comments: ------------------------------------------------------------------------ [2006-03-21 16:11:10] salbefe at inf dot upv dot es I have the same problem in Windows 2003 SP1. ------------------------------------------------------------------------ [2006-03-10 09:49:11] astro101 at hotmail dot com Yes had same problem WinXP SP2 Firebird 1.5.3 and firebird 2 and PHP 5.1.2, PHP5.1.3RC1, PHP5.1.3RC2. ------------------------------------------------------------------------ [2006-02-11 17:25:16] thomas at last-it dot de same problem on linux, php 5.1.2 I tried to debug the problem, but imho the problem is strange. The reason why the first row is null is as following: file: ext/pdo/pdo_stmt.c line: 532 <code> case PDO_PARAM_STR: if (value && !(value_len == 0 && stmt->dbh->oracle_nulls == PDO_NULL_EMPTY_STRING)) { ZVAL_STRINGL(dest, value, value_len, !caller_frees); if (caller_frees) { caller_frees = 0; } break; } default: ZVAL_NULL(dest); </code> With the first returned row from DB the first if clause above evaluates to false. so ZVAL_NULL is called. thats the reason for the null values in the first result set. Normally should "value" point to the argument "ptr" of the firebird_stmt_get_col function (in firebird_statement.c). gdp says that ptr is filled with the data out of DB properly. So why is "value" not the same as "ptr" and why is this only in the first result set?? greetz Thomas ------------------------------------------------------------------------ [2006-02-08 18:49:28] turyak at gmail dot com yep, experiencing same problem.. php 5.1.2, firebird 1.5.2 is there solution already? ------------------------------------------------------------------------ [2005-11-25 11:38:32] slapaf at hotmail dot com Description: ------------ When using PDO for simple query in Firebird it returns first row as null. I've tried using ADODB for control and it returns the correct results. Reproduce code: --------------- $dbh = new PDO("firebird:dbname=localhost:test.fdb","****","******"); $sql='SELECT EVENT_NAME FROM EVENTS'; foreach($dbh->query($sql) as $row){ print '<pre>'.gettype($row['EVENT_NAME']).' : '.$row['EVENT_NAME']; } Expected result: ---------------- string : name 1 string : name 2 string : name 3 string : name 4 Actual result: -------------- NULL : string : name 2 string : name 3 string : name 4 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35386&edit=1