ID: 26799
User updated by: danielc at analysisandsolutions dot com
Reported By: danielc at analysisandsolutions dot com
-Status: Open
+Status: Closed
Bug Type: MSSQL related
Operating System: Windows 2000
PHP Version: 4.3.4
New Comment:
Close it.
Previous Comments:
------------------------------------------------------------------------
[2004-01-06 23:27:16] danielc at analysisandsolutions dot com
Interesting. The query produces both a result and an error. I now see
that's how mssql intentionally operates.
By the way... mssql_min_error_severity() didn't change anything. But,
setting mssql_min_message_severity() to 0 caused a PHP warning on the
mssql_query() call.
Sample script:
--------------
$c = mssql_connect('localhost', 'sa', 'pw');
for ($Counter = 0; $Counter < 17; $Counter++) {
//mssql_min_error_severity($Counter);
mssql_min_message_severity($Counter);
$result = mssql_query('SELECT 0/0 AS FOO', $c);
echo ' E: ' . mssql_get_last_message();
$ar = mssql_fetch_array($result, MSSQL_ASSOC);
echo ' R: ' . gettype($ar['FOO']);
echo ' C: ' . $Counter;
echo '<br />';
}
Output:
-------
Warning: mssql_query(): message: Division by zero occurred. (severity
0) in...
E: Division by zero occurred. R: NULL C: 0
... snipped similar output for brevity ...
E: Division by zero occurred. R: NULL C: 16
------------------------------------------------------------------------
[2004-01-06 18:38:27] [EMAIL PROTECTED]
Try this script:
<?php
error_reporting(E_ALL);
$c = mssql_connect('localhost', 'sa', 'pw');
$result = mssql_query('SELECT 0/0 AS FOO', $c);
echo mssql_get_last_message();
?>
See also:
http://www.php.net/manual/en/function.mssql-min-error-severity.php
I think this is not really bug as is..the query doesn't actually
'fail'..
------------------------------------------------------------------------
[2004-01-05 16:52:37] danielc at analysisandsolutions dot com
Exactly. That's why MSSQL considers it an error. But PHP doesn't
report back the error from MSSQL.
------------------------------------------------------------------------
[2004-01-05 16:45:24] [EMAIL PROTECTED]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php
Nonumber may be divided by zero.
------------------------------------------------------------------------
[2004-01-05 16:31:25] danielc at analysisandsolutions dot com
Description:
------------
MSSQL seems to not like queries that divide by zero -- see the OSQL
commands below. But, PHP doesn't report it as an error.
osql -Usa
1> SELECT 0/0 AS FOO
2> go
Msg 8134, Level 16, State 1, Server BASE2K, Line 1
Divide by zero error encountered.
Reproduce code:
---------------
$c = mssql_connect('localhost', 'sa', 'pw');
$result = @mssql_query('SELECT 0/0 AS FOO', $c);
if ($result) {
$ar = mssql_fetch_array($result, MSSQL_ASSOC);
var_dump($ar);
} else {
echo mssql_get_last_message();
}
Expected result:
----------------
Divide by zero error encountered.
Actual result:
--------------
array(1) {
["foo"]=>
NULL
}
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26799&edit=1