PHP 4.0 Bug #10268: mysql_fetch_array() dropping non-NULL column name
| From: | clewis at myfonts dot com | Date: | Tue, 10 Apr 2001 17:34:47 +0000 |
| Subject: | PHP 4.0 Bug #10268: mysql_fetch_array() dropping non-NULL column name | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-51388@lists.php.net to get a copy of this message | ||
From: clewis@myfonts.com
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