为什么数组保留重复数据

时间:2012-05-10 07:08:34

标签: php mysql arrays unit-testing

使用PHP时,处理与数据库(MySQL)的连接

$result = mysql_query('select * from products');
$row = mysql_fetch_array($result);

昨天发现数组$row内有重复数据。

首先,您从数据库中选择数据,如:$row[0] = ID;,而不是您也可以找到$row['ID'] = ID.

这只是框架的一个特性,它可以虚拟地复制数据,或者这些数据在数组中存储两次。

5 个答案:

答案 0 :(得分:2)

要仅获取一个值集,您需要将第二个参数传递给mysql_fetch_array。 获取关联数组的“MYSQL_ASSOC”或获取正常数组的“MYSQL_NUM”。 例如:

$row = mysql_fetch_array($result, 'MYSQL_ASSOC')

这将返回:

$row['id']

Documentation

答案 1 :(得分:1)

from the manual

  

mysql_fetch_array - 将结果行作为关联数组获取,a   数组或两者

该功能的原型说明

array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )

意味着它默认返回两个数组 - 即 - 复制信息

答案 2 :(得分:0)

mysql_fetch_array将结果行作为关联数组,数字数组或两者进行提取。请参阅:mysql_fetch_array

答案 3 :(得分:0)

$result中的每一行都有一个索引,一个名称和一个值。您可以通过索引或名称查找行的值。

答案 4 :(得分:0)

请参阅the documentation for mysql_fetch_array()

默认设置是获取包含数字和关联数组的数组。请参阅PHP手册以更改它。