#24879 [Bgs]: Some data lost in returned array by mysql_fetch_array

From: Date: Mon, 04 Aug 2003 15:37:58 +0000
Subject: #24879 [Bgs]: Some data lost in returned array by mysql_fetch_array
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-45324@lists.php.net to get a copy of this message
ID: 24879 User updated by: sm at grand-prix dot ru Reported By: sm at grand-prix dot ru Status: Bogus Bug Type: MySQL related Operating System: Linux RedHat 9 PHP Version: 4.3.2 New Comment: Hmmm... But why numbered element is not equal to named? Previous Comments: ------------------------------------------------------------------------ [2003-08-04 08:33:46] sniper@php.net Bug #21589 is bogus -> bogus. ------------------------------------------------------------------------ [2003-08-04 08:22:00] georg@php.net see #21589 ------------------------------------------------------------------------ [2003-08-04 03:13:21] sm at grand-prix dot ru As i mean, bug occurs when both tables (main and left joined) contains columns with equal names and left-joined table does'nt contain needed row. In the such case named array elements with names, equal to such column names are cleared. Here is test script : ------------------------------------------------------------ <?php error_reporting(7); $srv = "mysql.server.ru"; $usr = "username"; $pwd = "password"; $db = "database"; $link_id=mysql_connect($srv,$usr,$pwd); if (!$link_id) { echo "Can't connect to mysql server<br>"; exit; } if (!mysql_select_db($db, $link_id)) { echo "Can't connect to mysql server<br>"; exit; } if ($action == "create_bases") { $query = "CREATE TABLE test1table ( userid int(10) unsigned DEFAULT '0' NOT NULL auto_increment, usergroupid smallint(5) unsigned DEFAULT '0' NOT NULL, username varchar(50) NOT NULL, password varchar(50) NOT NULL, PRIMARY KEY(userid) )"; $query_id = mysql_query($query,$link_id); if (!$query_id) { echo "invalid SQL:<br>$query<br>"; exit; } $query = "CREATE TABLE test2table ( userid int(10) unsigned DEFAULT '0' NOT NULL, field1 char(250) NOT NULL, field2 char(250) NOT NULL, field3 char(250) NOT NULL, field4 char(250) NOT NULL, PRIMARY KEY (userid) )"; $query_id = mysql_query($query,$link_id); if (!$query_id) { echo "invalid SQL:<br>$query<br>"; exit; } $query = "INSERT INTO test1table VALUES (1,6,'user1','password1')"; $query_id = mysql_query($query,$link_id); if (!$query_id) { echo "invalid SQL:<br>$query<br>"; exit; } $query = "INSERT INTO test1table VALUES (2,6,'user2','password2')"; $query_id = mysql_query($query,$link_id); if (!$query_id) { echo "invalid SQL:<br>$query<br>"; exit; } $query = "INSERT INTO test2table VALUES (1,'dummy1','dummy2','dummy3','dummy4')"; $query_id = mysql_query($query,$link_id); if (!$query_id) { echo "invalid SQL:<br>$query<br>"; exit; } echo "<br>tables created and initialized<br>"; exit; } $query = "SELECT * FROM test1table LEFT JOIN test2table ON test2table.userid=test1table.userid WHERE test1table.userid=1"; $query_id = mysql_query($query,$link_id); if (!$query_id) { echo "invalid SQL:<br>$query<br>"; exit; } $array = mysql_fetch_array($query_id); print_r($array); echo "<br><br>"; mysql_free_result($query_id); $query = "SELECT * FROM test1table LEFT JOIN test2table ON test2table.userid=test1table.userid WHERE test1table.userid=2"; $query_id = mysql_query($query,$link_id); if (!$query_id) { echo "invalid SQL:<br>$query<br>"; exit; } $array = mysql_fetch_array($query_id); print_r($array); echo "<br><br>"; mysql_free_result($query_id); ?> ------------------------------------------------------------------------ [2003-08-01 12:08:03] sm at grand-prix dot ru I can provide more accurate test script and tables only on monday... And I can't install RC version, I'm not a hoster... But some important information - this problem persist only for such database records, for which left joined records does'nt exist. ------------------------------------------------------------------------ [2003-08-01 08:45:46] sniper@php.net And I asked you to try the SNAPSHOT, NOT the latest stable release.. ------------------------------------------------------------------------ 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/24879 -- Edit this bug report at http://bugs.php.net/?id=24879&edit=1

« previous php.bugs (#45324) next »