ID: 26820 User updated by: subspace at wanadoo dot nl Reported By: subspace at wanadoo dot nl Status: Open Bug Type: MSSQL related Operating System: Debian Linux 2.4.21 PHP Version: 4.3.5RC2-dev CVS 200401190430 New Comment:
Accidentally clicked hit Submit before I was done typing.. Using 4.3.5RC2-dev CVS 200401190430 and Debian package freetds-dev 0.61-5 the result is now: X-Powered-By: PHP/4.3.5RC2-dev bit: int(0) tiny: int(0) bit: int(1) tiny: int(1) bit: int(0) tiny: NULL All the strings are now ints, but as you can see the expected NULL value is still not there. Previous Comments: ------------------------------------------------------------------------ [2004-01-19 01:00:23] subspace at wanadoo dot nl X-Powered-By: PHP/4.3.5RC2-dev bit: int(0) tiny: int(0) bit: int(1) tiny: int(1) bit: int(0) tiny: NULL ------------------------------------------------------------------------ [2004-01-18 23:02:58] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [2004-01-06 15:56:15] subspace at wanadoo dot nl Description: ------------ Fields that have the SQL type 'bit' and are nullable return string(1) "0" for both 0 (false) and NULL values, when using mssql_fetch_row and similar. Expected behavior would be to return bool(false) for NULL values. Reproduce code: --------------- function vdump($value) { ob_start(); var_dump($value); $result = ob_get_contents(); ob_end_clean(); return trim($result); } $db = mssql_connect('servername', 'username', 'password'); mssql_query("CREATE TABLE #demo (bitfield BIT NULL, tinyfield TINYINT NULL)", $db); mssql_query("INSERT INTO #demo (bitfield,tinyfield) VALUES (0, 0)", $db); mssql_query("INSERT INTO #demo (bitfield,tinyfield) VALUES (1, 1)", $db); mssql_query("INSERT INTO #demo (bitfield,tinyfield) VALUES (NULL, NULL)", $db); $result = mssql_query("SELECT * FROM #demo", $db); while ($row = mssql_fetch_row($result)) echo "bit: " . vdump($row[0]) . "\t tiny: " . vdump($row[1]) . "\n"; mssql_query("DROP TABLE #demo", $db); Expected result: ---------------- bit: string(1) "0" tiny: string(1) "0" bit: string(1) "1" tiny: string(1) "1" bit: bool(false) tiny: bool(false) Actual result: -------------- bit: string(1) "0" tiny: string(1) "0" bit: string(1) "1" tiny: string(1) "1" bit: string(1) "0" tiny: bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26820&edit=1