php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #45458 oci_fetch_all add NULL char to field name when field name is numeric
Submitted: 2008-07-08 15:14 UTC Modified: 2008-08-28 06:23 UTC
From: leopoldo dot donati at gmail dot com Assigned: sixd (profile)
Status: Closed Package: OCI8 related
PHP Version: 5.2.6 OS: Linux RHAS4
Private report: No CVE-ID: None
 [2008-07-08 15:14 UTC] leopoldo dot donati at gmail dot com
Description:
------------
Server: Oracle9i Enterprise Edition Release 9.2.0.7.0
Client: instant client 10.1.0.3

let's suppose we have a table (t) with 3 columns (a, b, c)
and you want to execute the statement:
select a "10", b "20", c "30" from t

if you parse, execute and then get the records like this:
while ($row = oci_fetch_array($statID, OCI_ASSOC)) $data[] = $row;
when you look at $data[0]["10"] there is a value

if you parse, execute and get the records with oci_fetch_all
$data = oci_fetch_all($statID, $data, 0, -1, OCI_FETCHSTATEMENT_BY_ROW)
if you print_r $data it looks the same but you can't access $data[0]["10"] because there is a NULL after the 10 (at least trying and ord looks like)


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-07-08 15:29 UTC] leopoldo dot donati at gmail dot com
I meant
$nr = oci_fetch_all($statID, $data, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
 [2008-08-28 06:23 UTC] sixd@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

----------------
Fixed in PHP 5.3
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 14:01:29 2024 UTC