ID: 50147 User updated by: w at lder dot de Reported By: w at lder dot de Status: Bogus Bug Type: MySQL related Operating System: Linux 2.6.16.21-0.25-default PHP Version: 5.2.11 New Comment:
Here the var_dump: array(6) { ["Field"]=> string(17) "hereIsDefaultNULL" ["Type"]=> string(8) "int(255)" ["Null"]=> string(3) "YES" ["Key"]=> string(0) "" ["Default"]=> NULL ["Extra"]=> string(0) "" } array(6) { ["Field"]=> string(19) "defaultEmptyvarchar" ["Type"]=> string(12) "varchar(255)" ["Null"]=> string(2) "NO" ["Key"]=> string(0) "" ["Default"]=> string(0) "" ["Extra"]=> string(0) "" } Yes, I know that "'' == NULL (true)", but in mySQL : mysql> SELECT '' IS NULL; +------------+ | '' IS NULL | +------------+ | 0 | +------------+ mysql> SELECT NULL IS NULL; +--------------+ | NULL IS NULL | +--------------+ | 1 | +--------------+ Previous Comments: ------------------------------------------------------------------------ [2009-11-12 10:06:28] u...@php.net Wait, ... I didn't get you changed table structure. Can you provide a new var_dump but keep in mind: [2009-11-12 11:05] <Jani_> '' == NULL (true), NULL == NULL (true). Ulf ------------------------------------------------------------------------ [2009-11-12 10:00:16] j...@php.net Please, ask further question on how to use PHP elsewhere. There are no bugs in this in either PHP or MySQL. ------------------------------------------------------------------------ [2009-11-12 09:33:02] u...@php.net Bogus Why would one return NULL for meta data. NULL = undefined, "NULL" = defined. ------------------------------------------------------------------------ [2009-11-12 09:08:40] w at lder dot de OK, but how can I get the value NULL? I think it is an difference between "NULL" and "". Any idea? Another Example: <?php /* Mysql: CREATE TABLE IF NOT EXISTS `test` ( `hereIsDefaultNULL` int(255) default NULL, `defaultEmptyvarchar` varchar(255) NOT NULL default '' ) */ mysql_connect('localhost','root',''); mysql_select_db('test'); $columns_res = mysql_query('SHOW COLUMNS FROM `test`'); while ($fieldRow = mysql_fetch_assoc($columns_res)) { if ($fieldRow['Default'] == NULL) { echo $fieldRow['Field'] . ' is NULL </br>'; } } ?> Expected result: ---------------- hereIsDefaultNULL is NULL Actual result: -------------- hereIsDefaultNULL is NULL defaultEmptyvarchar is NULL ------------------------------------------------------------------------ [2009-11-12 08:38:18] j...@php.net Replace print_r() with var_dump() and prepare for surprise. ------------------------------------------------------------------------ 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/50147 -- Edit this bug report at http://bugs.php.net/?id=50147&edit=1