0

我不熟悉 mysqli_fetch_array 并且似乎无法弄清楚这一点。我有以下代码:

function select_fetch_row ($arg1, $arg2) {
    $con = new mysqli(/* ... */);
    $query = "SELECT $arg1 FROM $arg2";
    $select = mysqli_query($con, $query);
    while($row = mysqli_fetch_array($select, MYSQLI_NUM)){
        echo $row[0];
    }

}

select_fetch_row(/* parameters*/);

但是我不明白它应该做什么。我期望获得一个数组,其中每个键对应于我的表中的一行,但是当我输出我的代码时,而不是仅仅$row[0]回显第一行 () 的值,列的所有值都会得到回显。有人可以解释一下这个功能是如何工作的吗?

4

1 回答 1

2
while($row = mysqli_fetch_array($select, MYSQLI_NUM)){
        echo $row[0];
    }

您正在逐行获取行,而不是在单个数组中。因此,每个 $row 变量在表中都有一行,每个键都包含一个列值。因此,当您回显 $row[0] 时,您将显示您返回的行的第一列。

如果您将参数 MYSQLI_NUM 更改为 MYSQLI_ASSOC,您将更好地了解正在发生的事情(数组键将包含列名而不是整数)。

如果你想一次性获取所有行,你可以使用 mysqli_fetch_all 代替,它会给你一个大数组,每个键包含一行。

http://www.php.net/manual/en/mysqli-result.fetch-array.php

http://www.php.net/manual/en/mysqli-result.fetch-all.php

于 2013-10-12T02:11:33.883 回答