From: [EMAIL PROTECTED]
Operating system: RedHat 6.1
PHP version: 4.0.4pl1
PHP Bug Type: MySQL related
Bug description: mysql_fetch_array() dropping non-NULL column name
mysql_fetch_array with MYSQL_BOTH or MYSQL_ASSOC is returning one of the columns in
the query ONLY as a numeric index, but not the named index. The column is a NOT NULL
column, so the value is always defined.
I have a feeling the problem has something to do with the fact that the "missing"
column is the column joining two tables. Here's the SQL:
select distinct p.*,pt.Formula
from Promotions p, PromoTypes pt
where p.PromoTypeID = pt.PromoTypeID
Here's some of the result of mysql_fetch_array:
array(31) {
[0]=>
string(2) "10"
["PromotionID"]=>
string(2) "10"
[1]=>
string(20) "Free font with order"
["Name"]=>
string(20) "Free font with order"
...etc...
[7]=>
string(2) "10"
[8]=>
string(4) "0.01"
["X"]=>
string(4) "0.01"
...etc...
}
Array index 7 should be followed by the key "PromoTypeID". The same thing happens
using MYSQL_ASSOC (the element is missing altogther), and also if I specify
p.PromoTypeID explicitly in the query.
The problem IS SOLVED if I alias the column name to something else using
"p.PromoTypeID AS FakeName" , which makes me think even more that it's being confused
by the table joining.
--
Edit Bug report at: http://bugs.php.net/?id=10268&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]