mysql_fetch_array返回重复数据

时间:2012-08-14 17:22:50

标签: php mysql

每次运行mysql_fetch_array时,都会返回一个重复值的数组,例如

Array
(
    [0] => 1
    [row_id] => 1
    [1] => some text
    [first_field] => some text
    [2] => some text
    [second_field] => some text 
}

但我只想在数组中使用单个结果,我尝试使用

mysql_fetch_array($data, MYSQL_ASSOC);

但这没什么区别。

7 个答案:

答案 0 :(得分:13)

这是mysql_fetch_array()的预期功能。如果您不想使用“重复”并且只有关联数组,请改用mysql_fetch_assoc()

示例:

while ($row = mysql_fetch_assoc($data)) { ... }

答案 1 :(得分:3)

mysql_fetch_array将作为对查询执行的响应返回的结果集返回为关联数组和数字数组。 要将结果集作为关联数组返回,您需要使用mysql_fetch_assoc函数。 要将结果集作为数字数组返回,您需要使用mysql_fetch_row函数。

答案 2 :(得分:1)

对关联数组使用mysql_fetch_assoc(),对数值数组使用mysql_fetch_row

答案 3 :(得分:0)

来自manual

  

返回与获取的行对应的字符串数组,或   如果没有更多行,则为FALSE。 返回数组的类型取决于   关于如何定义result_type。通过使用MYSQL_BOTH(默认),你会   得到一个包含关联索引和数字索引的数组。使用   MYSQL_ASSOC,你只获得关联索引(作为mysql_fetch_assoc()   使用MYSQL_NUM,你只得到数字索引(如。)   mysql_fetch_row()工作)。

换句话说,由于MYSQL_BOTH是默认值,因此您可以返回。您可以指定MYSQL_ASSOC或MYSQL_NUM来获取关联数组或数字数组。您也可以使用mysql_fetch_assoc()代替只会返回一个关联数组。

答案 4 :(得分:0)

mysql_fetch_array()返回一个数组,其中包含关联键(由查询指定的字段名称)和整数位置键(即0表示第一个字段,1表示第二个字段等)。这是为了方便用任何一种方法访问数据。

如果你只想要命名键,你应该使用mysql_fetch_assoc()或者更好,使用mysqli函数,因为这里的每个人都会使用旧的mysql_ *函数来抨击你。

答案 5 :(得分:0)

mysqli_fetch_array($result, MYSQL_ASSOC)这对我来说对mysql_fetch_assoc有所帮助,在PHP5.5中它已被弃用。

答案 6 :(得分:0)

mysql_fetch_array()返回索引以及关联数组。但是,mysql_fetch_assoc()仅返回关联数组。

当与MYSQLI_NUM参数一起使用的mysql_fetch_array仅返回索引数组时。 示例:mysql_fetch_array($ resultset,MYSQLI_NUM)