7

每次我运行 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);

但这没有什么区别。

4

7 回答 7

15

这是mysql_fetch_array(). 如果您不想拥有“重复项”而只拥有关联数组,请mysql_fetch_assoc()改用。

例子:

while ($row = mysql_fetch_assoc($data)) { ... }
于 2012-08-14T17:25:03.167 回答
4

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

于 2012-08-14T18:36:42.507 回答
1

将 mysql_fetch_assoc() 用于关联数组,或 mysql_fetch_row 用于数值数组

于 2012-08-14T17:25:13.850 回答
1

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

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

于 2012-08-14T17:26:38.607 回答
0

手册

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

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

于 2012-08-14T17:25:13.290 回答
0

mysqli_fetch_array($result, MYSQL_ASSOC)正如上面建议的那样,这对我mysql_fetch_assoc有用,在 PHP5.5 中它现在已被弃用。

于 2016-02-21T11:07:25.077 回答
0

mysql_fetch_array() 返回索引数组和关联数组。然而 mysql_fetch_assoc() 只返回关联数组。

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

于 2019-02-17T19:57:54.113 回答