我不熟悉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]
),而是回显列的所有值。有人可以阐明此功能的实际工作原理吗?
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