ID: 33153
Updated by: fmk@php.net
Reported By: erudd at netfor dot com
-Status: Assigned
+Status: Closed
Bug Type: MSSQL related
Operating System: FC3/FC4/MDK 10.2 x86 & x86_64
PHP Version: 4.3.11
Assigned To: fmk
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[2005-10-17 21:56:55] erudd at netfor dot com
Patch based on PHP_5_0 head branch
applies to php 5.0.4 and php 4.3.10.
tested and works with every I could throw at it (32 bit and 64 bit)
Index: php_mssql.c
===================================================================
RCS file: /repository/php-src/ext/mssql/php_mssql.c,v
retrieving revision 1.137.2.9
diff -u -r1.137.2.9 php_mssql.c
--- php_mssql.c 12 Apr 2005 17:46:06 -0000 1.137.2.9
+++ php_mssql.c 14 Oct 2005 23:02:42 -0000
@@ -1829,10 +1829,15 @@
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(result, mssql_result *, mssql_result_index,
-1, "MS SQL-result", le_result);
mssql_ptr = result->mssql_ptr;
retvalue = dbresults(mssql_ptr->link);
+
+ while (dbnumcols(mssql_ptr->link) <= 0 && retvalue == SUCCEED)
{
+ retvalue = dbresults(mssql_ptr->link);
+ }
+
if (retvalue == FAIL) {
RETURN_FALSE;
}
------------------------------------------------------------------------
[2005-08-09 16:17:35] freddyz77 at tin dot it
Problem here is that in mssql_next_result PHP do not ignore recordset
without columns
in mssql_query
/* Skip results not returning any columns */
while ((num_fields = dbnumcols(mssql_ptr->link)) <= 0 && retvalue ==
SUCCEED) {
retvalue = dbresults(mssql_ptr->link);
}
in mssql_execute
/* Skip results not returning any columns */
while ((num_fields = dbnumcols(mssql_ptr->link)) <= 0 && retval_results
== SUCCEED) {
retval_results = dbresults(mssql_ptr->link);
}
but there is no such loop in mssql_next_result
freddy77
------------------------------------------------------------------------
[2005-08-03 18:56:54] erudd at netfor dot com
Any updates on this issue?
(Mandrake Bug #)
http://qa.mandriva.com/show_bug.cgi?id=17272
------------------------------------------------------------------------
[2005-06-28 18:54:00] erudd at netfor dot com
I have tried the latest CVS code for the php-mssql extension and the
same results occur.. I updated to the lastest on the 0.63 branch of
freetds and apache/php no longer segfault, but PHP never advances to
the next result set.
------------------------------------------------------------------------
[2005-05-30 10:31:51] freddyz77 at tin dot it
dblastrow should not fail, this is certainly a FreeTDS bug. Fixed in
CVS, expect a new 0.63.1 release.
However I don't understand why PHP calls dblastrow (related to dblib
buffering).
freddy77
(FreeTDS developer)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/33153--
Edit this bug report at http://bugs.php.net/?id=33153&edit=1