|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-03-22 00:06 UTC] paul at thehedron dot com
Description:
------------
mysqli->fetch() is returning bad data on int columns. I saw this listed, then closed as bogus (29002). I just hit it today and assure you it is not bogus.
Here is my full setup:
-----------------------------------------------------------
CPU: AMD64
OS: Fedora Core 3 (2.6.9-1.667)
PHP: 5.0.3
libmcrypt-2.5.7
mcrypt-2.6.4
mhash-0.9.2
Apache: 1.3.33
mod_ssl-2.8.22-1.3.33
openssl-0.9.7e
MySQL: 4.1.10
GCC: 3.4.2
-----------------------------------------------------------
PHP configuration:
./configure \
--with-apxs=/www/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mcrypt=/shared/LAMP/PHP5/libmcrypt-2.5.7 \
--enable-ftp \
--enable-trans-sid
Reproduce code:
---------------
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
lastname VARCHAR(50) NOT NULL,
PRIMARY KEY(user_id));
-----------------------------------------------------------------------
<?php
$mysqli = new mysqli('localhost', 'user', 'password', 'test');
if ($stmt = $mysqli->prepare("SELECT user_id, lastname FROM users")) {
$stmt->execute();
$stmt->bind_result($col1, $col2);
while ($stmt->fetch()) {
printf("%s %s <br />", $col1, $col2);
}
$stmt->close();
}
$mysqli->close();
?>
Expected result:
----------------
Expected results:
1 Peterson
2 Asenbach
Actual result:
--------------
Actual results:
32199691940659210 Peterson
32199691940659211 Asenbach
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 06:00:01 2025 UTC |
Can't repeat (user gave me access on this machine): mysql> use test; Database changed mysql> show tables; Empty set (0.00 sec) mysql> CREATE TABLE users ( -> user_id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> lastname VARCHAR(50) NOT NULL, -> PRIMARY KEY(user_id)); Query OK, 0 rows affected (0.02 sec) mysql> insert into users value (0, 'Paul'), (0, 'Georg'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> quit [georg@ascdev ~]$ cat 32405.php <?php $mysqli = new mysqli('localhost', 'georg', '', 'test'); if ($stmt = $mysqli->prepare("SELECT user_id, lastname FROM users")) { $stmt->execute(); $stmt->bind_result($col1, $col2); while ($stmt->fetch()) { printf("%s %s\n", $col1, $col2); } $stmt->close(); } $mysqli->close(); ?> [georg@ascdev ~]$ php -f 32405.php 1 Paul 2 Georg