I have a PHP problem with the ODBC interface returning TRUNCATED result sets on Linux.

PHP: 4.3.3
Web server: Apache 2.0.47
OS: Linux Redhat 9.0
Host database: IBM AS/400 (now known as iSeries)
ODBC Driver: IBM Client Access for Linux
ODBC library: unixODBC 2.2.6

I have a query that should return around 3000 rows. *Most* of the time it does. Unfortunately about 40% of the time it returns less than that with no indications of any errors. When not all rows are returned, the number of records seems to be essentially random (I have seen anything from 90 rows up to just a few records short).

If I do a command-line test using isql (unixODBC's query tool), I get the right record count every time. Therefore, the problem appears to be within PHP.

I am developing this project on a Windoze 2000 box and deploying into the Linux environment for the production system. The problem does not show up in the Win2000 environment.

I haven't supplied any of the actual query details because without your own AS/400, it will be impossible to duplicate my results. However, if someone familiar with the PHP core wants to take a detailed look at this I would be happy to discuss the details off list.

Right now our short-term kludge is to first get the true result set size with a count(*) query, then repeat the full query until we get the right number of records. This is clearly not an acceptable production solution. In the absence of a fix, we'll have to move the production system to a Windoze box -- please save me from this horrid fate!

PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to