ID: 18271 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Feedback +Status: No Feedback Bug Type: MSSQL related Operating System: Win2000 Server PHP Version: 4.2.1 New Comment:
No feedback was provided for this bug for over 2 weeks, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". Previous Comments: ------------------------------------------------------------------------ [2002-12-07 01:42:06] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-latest.zip ------------------------------------------------------------------------ [2002-07-12 23:55:04] [EMAIL PROTECTED] I eventually figured out that the problem was related directly to the "kilometres" column of the table, which was of type real. I changed the data type of the column to "decimal" - this was more appropriate for the data anyway. The column contains odometer readings, numbers in the range 0 - 400000 which either had one decimal place or no fractional part at all. The problems instantly disappeared. It seems that something in the php_mssql extension has trouble with the real data type, in certain circumstances. Because I'm happy to use the decimal data type on this ocassion, my problem is solved, but I would still regard this as an open bug report. I'm happy to do more testing on demand, if it would help the cause. ------------------------------------------------------------------------ [2002-07-12 04:20:59] [EMAIL PROTECTED] Using a process of elimination (commenting out blocks of code), I tracked down what was causing the hang. As it happens, it is all because of a certain query on the page. If PHP tries to run this query, it hangs, and the page doesn't return anything at all. A bit of experimentation with the query revealed that the issue is directly related to one particular table in my database, odometer_log. Some attempts to query this table cause the hang, do not pass GO do not collect 200 dollars. No error is reported or logged by either PHP or SQL Server. There's nothing very interesting about the table that should cause PHP to drop the bundle. Here's the table definition: CREATE TABLE odometer_log ( id int not null identity(1,1) primary key, car int not null references motor_vehicle(id), kilometres real not null, date datetime not null, type int not null references odometer_log_type(id) ) As you can see, it's all pretty standard. No exotic binary data types or the like. I am able to open (and query) the table in SQL Server Enterprise Manager without any hassles, and likewise using Linked Tables in MS Access. So the problem seems not to be within the data table itself, or ODBC, and rather something to do with how the php_mssql extension accesses it. Results of various query tests on the table (through PHP)are as follows: SELECT * FROM odometer_log: Hangs SELECT COUNT(*) FROM odometer_log: Succeeds SELECT * FROM odometer_log WHERE car=63: Succeeds SELECT * FROM odometer_log WHERE car=88: Hangs So you might think that the error was being caused by certain car IDs, right? Well, not quite, since there's no significant difference between the data for car 63 and car 88. But to prove the point, see this next series of results: SELECT * FROM odometer_log WHERE car < 10: Succeeds SELECT * FROM odometer_log WHERE car < 10 ORDER BY car: Hangs SELECT * FROM odometer_log WHERE car = 3: Succeeds SELECT * FROM odometer_log WHERE car > 2 and car < 4: Hangs SELECT * FROM odometer_log WHERE car = 9: Hangs SELECT * FROM odometer_log WHERE car > 8 and car < 10: Hangs SELECT * FROM odometer_log WHERE car > 2 and car < 10: Hangs Try as I might, I can't think of a single rational explanation for this behaviour, nor can I think of a distinguishing factor between the queries which work and those which fail. Please help before I have an aneurism! ------------------------------------------------------------------------ [2002-07-12 01:39:30] [EMAIL PROTECTED] Have confirmed that the error occurs using Mozilla 0.9.4 and Netscape Communicator 4.78 under Mandrake Linux. These are older browsers, but it is clear that the error isn't IE6 specific. ------------------------------------------------------------------------ [2002-07-11 05:06:45] [EMAIL PROTECTED] Upgraded to 4.2.1, no change. Did some more searching of the bugs database, found 15324 and 14937 seemed to be similar problems to mine, but didn't find any solutions. It's becoming evident that the request is being passed to php.exe, but that PHP immediately fails to process the script, and instead of responding with an error, it just hangs. IIS reacts to this non-response by dropping out a 502 error code and a "CGI Timeout" message. Might try ADP next. ------------------------------------------------------------------------ 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/18271 -- Edit this bug report at http://bugs.php.net/?id=18271&edit=1