奇怪的mysql_fetch_array输出

时间:2012-12-17 13:20:51

标签: php mysql

我的代码是:

$query = "SELECT a.hash, a.full, a.partial, a.servers, a.lastupd, b.full, b.partial, b.servers, b.lastupd FROM table1 AS a, table2 AS b WHERE a.hash='".$hashcode."' AND a.hash=b.hash;";
$result = mysql_query($query);

然后我执行

print_r(mysql_fetch_array($result));

我得到了这个奇怪的输出:

Array
(
    [0] => blah
    [hash] => blah
    [1] => 1,1,1
    [full] => 0,1
    [2] => 1,2,1
    [partial] => 4,2
    [3] => srv1,srv2,srv3
    [servers] => srv2,srv3
    [4] => 0000-00-00 00:00:00
    [lastupd] => 0000-00-00 00:00:00
    [5] => 0,1
    [6] => 4,2
    [7] => srv2,srv3
    [8] => 0000-00-00 00:00:00
)

为什么b表的数据重复,并且没有创建带有键a.*b.*的关联数组?

注意:设置为0的时间戳是正确的

1 个答案:

答案 0 :(得分:5)

因为mysql_fetch_array返回关联数组和数字数组。如果只需要关联数组,请使用mysql_fetch_assoc。

(顺便说一句,不推荐使用mysql,read about using mysqli or PDO