ID:               29215
 User updated by:  rudy dot metzger at xs4all dot nl
 Reported By:      rudy dot metzger at xs4all dot nl
-Status:           Feedback
+Status:           Closed
 Bug Type:         MySQL related
 Operating System: Linux RH ES 3
 PHP Version:      5.0.0
 New Comment:

Darn, I used an old Mysql-shared library of 4.0.18, although I had
server/client/devel of 4.1 installed. Removed the old shared rpms and
compiled PHP anew and now it works flawlessly!

Sorry to raise this bogus Bug!!! But thanx alot for your quick response
and reaction, great work!

Cheerio
/rudy


Previous Comments:
------------------------------------------------------------------------

[2004-07-19 16:31:36] [EMAIL PROTECTED]

Works fine here! 
What does mysql_get_client_info() returns on your machine? 

------------------------------------------------------------------------

[2004-07-19 15:47:45] rudy dot metzger at xs4all dot nl

parlnx03> select version();
+-------------------------+
| version()               |
+-------------------------+
| 4.1.3-beta-standard-log |
+-------------------------+
1 row in set (0.00 sec)
 
parlnx03> show create table test;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                           |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (
  `a` varchar(50) default NULL,
  `b` int(11) default NULL,
  `c` datetime default NULL,
  `d` float default NULL,
  `e` text
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
 
parlnx03>


Do not insert any data into the table (in practise, it does not matter
if you insert data or not, the result will be the same)

[command] php --version
PHP 5.0.0 (cli) (built: Jul 16 2004 13:57:08)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.0, Copyright (c) 1998-2004 Zend Technologies

<?php
 
  $dbh = mysql_connect( 'localhost', 'myself', 'mypwd' );
  mysql_select_db( 'test' );
 
  $sql = "SELECT a, b, c, d, e
            FROM test
           LIMIT 1";
  $res = mysql_unbuffered_query( $sql, $dbh );
 
  echo "Following is off by one index!\n";
 
  echo mysql_field_type( $res, 0 )." -> should be A, but is B\n";
  echo mysql_field_type( $res, 1 )." -> should be B, but is C\n";
  echo mysql_field_type( $res, 2 )." -> should be C, but is D\n";
  echo mysql_field_type( $res, 3 )." -> should be D, but is E\n";
  echo mysql_field_type( $res, 4 )." ALWAYS real";
 
  echo " NOTE: A is missing!\n";
 
  mysql_free_result( $res );
 
  mysql_close( $dbh );
 
?>

---------------- SCRIPT OUTPUT --------------------------

[command] php db.php
Following is off by one index!
int -> should be A, but is B
datetime -> should be B, but is C
real -> should be C, but is D
blob -> should be D, but is E
real ALWAYS real NOTE: A is missing!

---------------- END OUTPUT -----------------------------

As you can see, the output is off by one index (actually, the first
field should be -1). The last field is always real  (cannot mapped
anymore, because index is off). At MySQL 4.1.2 alpha the last one was
random (real, unknown, ..)

An easy way to reproduce:
1) create the table
2) modify the script with your userid/pwd
3) run the script

Happy debugging! And hope I could be of some help.

Cheerio
/rudy

------------------------------------------------------------------------

[2004-07-16 18:35:58] [EMAIL PROTECTED]

Please use actual mysql version for server and client 
(4.1.3-beta). If you will be able to reproduce the bug, 
send a reproducable and short testscript (including create 
table statement, and insert statement, output of client 
and server version) and reopen this bug. 

------------------------------------------------------------------------

[2004-07-16 16:30:42] rudy dot metzger at xs4all dot nl

Description:
------------
mysql_file_type() returns bogus data. 

PHP 5.0.0

mysql> desc zpm_auth;
+----------+-------------+------+-----+---------------------+-------+
| Field    | Type        | Null | Key | Default             | Extra |
+----------+-------------+------+-----+---------------------+-------+
| userid   | varchar(20) |      | PRI |                     |       |
| username | varchar(50) | YES  |     | NULL                |       |
| password | varchar(32) | YES  |     | NULL                |       |
| creusr   | varchar(32) |      |     |                     |       |
| credat   | datetime    |      |     | 0000-00-00 00:00:00 |       |
| modusr   | varchar(32) |      |     |                     |       |
| moddat   | datetime    |      |     | 0000-00-00 00:00:00 |       |
+----------+-------------+------+-----+---------------------+-------+
7 rows in set (0.00 sec)
 
mysql> select version();
+--------------------------+
| version()                |
+--------------------------+
| 4.1.2-alpha-standard-log |
+--------------------------+
1 row in set (0.00 sec)
 
mysql>



  $sql = "SELECT userid FROM zpm_auth LIMIT 1";
  $res = mysql_query( $sql, $this->DBH() );
  $this->EvaluateCommand( $res, false, true, $sql );
                                                                       
        
  $colType = mysql_field_type( $res, 0 );
die( $colType );


Works in PHP5 RC3



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=29215&edit=1

Reply via email to