在MySQL中,表test
如下所示:
id name lft rgt
1 Folder 1 1 10
2 Child 1 2 3
3 Child 2 4 7
4 Child 1 5 6
5 Child 3 8 9
当我这样做时:
$results = mysql_query("SELETCT * FROM test ORDER BY id");
$fetch = mysql_fetch_array($results);
echo "<pre>";
echo print_r($fetch);
echo "</pre>;
结果是:
[0] => 1
[id] => 1
[1] => Folder 1
[name] => Folder 1
[2] => 1
[lft] => 1
[3] => 10
[rgt] => 10
我的问题是,为什么会有
[0] => 1
、[1] => Folder 1
、2] => 1
和[3] => 10
?正如我所看到的,它们以某种方式与原始行相链接,也许这些是它们的索引,但我应该如何去除它们? 最佳答案
mysql_fetch_array()
有三种检索数据的模式。默认值是MYSQL_BOTH
,这就是您看到的-组合哈希+数组结构。其他两种模式是仅数组(MYSQL_NUM
)和仅散列(MYSQL_ASSOC
)。
换句话说,在获取模式下,这些是直接的1:1通信:
mysql_fetch_array($results, MYSQL_NUM) === mysql_fetch_row($results)
mysql_fetch_array($results, MYSQL_ASSOC) === mysql_fetch_assoc($results)
mysql_fetch_array($results) === mysql_fetch_array($results, MYSQL_BOTH) // default mode.
关于php - MySQL PHP:额外的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5708083/