Bug #11628 Updated: odbc_fetch_into is broken

From: Date: Mon, 02 Jul 2001 14:10:39 +0000
Subject: Bug #11628 Updated: odbc_fetch_into is broken
Groups: php.dev 
Request: Send a blank email to php-dev+get-58700@lists.php.net to get a copy of this message
ID: 11628 Updated by: kalowsky Reported By: charles@invis.net Status: Closed Bug Type: ODBC related Operating system: PHP Version: 4.0.6 Assigned To: Comments: 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. Previous Comments: --------------------------------------------------------------------------- [2001-06-28 10:36:25] charles@invis.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-06-28 10:12:41] 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-27 22:50:46] 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-27 10:24:21] charles@invis.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 10:10:48] 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. --------------------------------------------------------------------------- The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online. ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=11628&edit=2

« previous php.dev (#58700) next »