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