php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #11628 odbc_fetch_into is broken
Submitted: 2001-06-23 08:43 UTC Modified: 2001-07-02 10:10 UTC
From: charles at invis dot net Assigned:
Status: Closed Package: ODBC related
PHP Version: 4.0.6 OS: Win2k
Private report: No CVE-ID: None
 [2001-06-23 08:43 UTC] charles at invis dot net
this is for 4.0.6, but there's no option for that yet....  4.0.5 works fine.

easiest to describe this by example:

odbc_fetch_into($qid,1,$row);

gives

Fatal error: Only variables can be passed by reference in <script> on line <line>


$i=1;
odbc_fetch_into($qid,$i,$row);

works perfectly.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-06-23 14:42 UTC] sniper@php.net
correct version.

 [2001-06-27 10:10 UTC] kalowsky@php.net
it is not broken. 

this functionality was changed to remove the need for the final variable to be a reference.  unfortunately due to the nature of the function, the final variable is ALWAYS required to be a reference.  this functionality will change in 4.1 to better reflect a more intelligent ordering of the variables and will allow your first example to work.
 [2001-06-27 10:24 UTC] charles at invis dot net
right, i think a little background is called for.

4.0.x<5:
odbc_fetch_into($qid,1,&$row);

4.0.5:
odbc_fetch_into($qid,1,$row);

4.0.6
$i=1;
odbc_fetch_into($qid,$i,$row);

what has this got to do with the 3rd parameter? The need for the reference operator was removed in 4.0.5 and everything worked fine. why does the row number suddenly need to be passed by reference? its not like its going to be updated by odbc_fetch_into is it?
 [2001-06-27 22:50 UTC] sniper@php.net
I really don't see the reason why the second parameter
should be passed by reference anyway. 

Dan, fix this. :)


 [2001-06-28 10:12 UTC] sniper@php.net
This function has to be redesigned but this has to wait 
for PHP 4.1.x release. At the moment this is the intented
behaviour. Not a bug. But expect this function to change
in PHP 4.1.x. Documentation will be updated soon.

--Jani

 [2001-06-28 10:36 UTC] charles at invis dot net
Sorry to be a pain here, but why does this now need to wait for 4.1? It worked perfectly in 4.0.5. Why is 4.0.6 different? I cannot think of a single reason why the row number needs to be passed as reference. I completely agree that *redesigning* the function should wait for 4.1, but I'm now stuck on 4.0.5 because a) its a lot of work to change my code for no particularly good reason, b) I can't be sure that I won't have to change it again in 4.0.7.... Do I now have to write another layer of abstraction for the ODBC layer so that I can deal with these changes? I was a little unhappy with 4.0.5 complaining about &$row, but I could live with that - 10 second search and replace on 1 site. I've now got a bunch of live sites that I'll have to update so that the clients can upgrade to 4.0.6.
I fully understand - and support - the need to redesign functions. I fully *expect* there to be changes that need to be made on a major point release. But on minor point releases? Or have I completely missed the point here?
 [2001-07-02 10:10 UTC] kalowsky@php.net
To answer the question submitted by the bug reporter:

odbc_fetch_into function can work with two different calls:

odbc_fetch_into($ress_id, $array)  
or
odbc_fetch_into($ress_id, $row, $array)

while the second way may work for you just fine and dandy, those using the first method were still broken.  in other words the $array variable is in a bad location and should NOT be considered "optional."  due to the internal structure of the PHP/Zend archictecture, there didn't seem to be any real way to force arg2 to be a reference when there were only 2 total arguements.... thus the answer was to force arg2 and arg3 to both be references.  

As stated before, this function will change in 4.1, and you will be able to use constants again.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 18 16:01:29 2024 UTC