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

Reply via email to