ID: 39892 Updated by: [EMAIL PROTECTED] Reported By: migues at email dot cz -Status: Open +Status: Bogus Bug Type: MySQLi related Operating System: Win XP Pro SP2 PHP Version: 5.2.0 New Comment:
Sorry, but your problem does not imply a bug in PHP itself. For a list of more appropriate places to ask for help using PHP, please visit http://www.php.net/support.php as this bug system is not the appropriate forum for asking support questions. Due to the volume of reports we can not explain in detail here why your report is not a bug. The support channels will be able to provide an explanation for you. Thank you for your interest in PHP. The problem here is that the mysql mysql_fetch_field_direct() function fails to populate the "def" property of the MYSQL_FIELD structure. This subsequently causes PHP to put an empty string for its value. Previous Comments: ------------------------------------------------------------------------ [2007-01-18 08:01:45] migues at email dot cz Thanks to Christian and his example code, status can be changed to open again. ------------------------------------------------------------------------ [2007-01-17 21:43:06] ceabear at gmx dot de Here is a quick example code for the original bug report, it should print the column name and its defined default value for the column. <?php $sql="CREATE TABLE `fetchfield` ( `id` int(11) NOT NULL auto_increment, `product` varchar(11) collate latin1_german1_ci NOT NULL default 'standard', `test` int(11) default '3', `nullable` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM;"; $con=mysqli_connect('localhost','username','password','test'); mysqli_query($con,$sql); $res=mysqli_query($con,"SELECT * FROM test.fetchfield"); $metas=mysqli_fetch_fields($res); foreach($metas as $meta) { echo 'default for '.$meta->name.' is:'; var_dump($meta->def); echo '<br>'; } ?> this creates a simple test table with some fields, which get default values by definition. as a result I get: default for id is:string(0) "" default for product is:string(0) "" default for test is:string(0) "" default for nullable is:string(0) "" the column names are printed ($meta-name) but the default value ($meta->def) is always an empty string. expected output is: default for id is:string(0) "" default for product is:string(0) "standard" default for test is:string(0) "3" default for nullable is:string(0) null it looks like the default value is always an empty string instead of data out of the database. looking into the source of php, a null value would be never returned (because of the source code). I tried to find out, if this could be a problem of the c-api of mysql, but didn't find a fitting bug entry on mysql. maybe this helps to understand the problem? I used mysql version 5.0.21-community-nt-log on Windows 2000 SP4 and PHP 5.2.0 for testing ------------------------------------------------------------------------ [2006-12-27 01:00:00] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, 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". ------------------------------------------------------------------------ [2006-12-19 22:21:26] [EMAIL PROTECTED] It might become really simple as soon as I get what you're talking about. At the moment I don't get it, sorry. ------------------------------------------------------------------------ [2006-12-19 21:56:49] migues at email dot cz Hey guys! Sorry I'm quite novice so it would took me long time to reproduce step by step creation a.s.o. But it's simple : def $res->fetch_fields(); in returns always null! I guess it will work always the same on other mysql 5.0... with mysqli_result object ------------------------------------------------------------------------ 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/39892 -- Edit this bug report at http://bugs.php.net/?id=39892&edit=1