首页 >数据库 >mysql教程 >为什么我的 MySQLi 获取数组会导致输出加倍?

为什么我的 MySQLi 获取数组会导致输出加倍?

DDD
DDD原创
2024-10-29 05:35:311102浏览

Why Does My MySQLi Fetch Array Result in Doubled Output?

数组中有两个结果(MySQLi 获取数组)

问题

执行以下代码:

<code class="php">$table = get_personel_table(1);

function get_personel_table($id) {
    global $connection;
    $query = "SELECT * FROM employees WHERE id=$id ORDER BY id ASC";
    $query_result = mysqli_query($connection, $query);
    confirm_query($query_result);
    $query_result_array = mysqli_fetch_array($query_result);
    return $query_result_array; // returns associative array!
}

foreach($table as $table_var) {
    echo "<td>$table_var</td>";
}</code>

结果为双倍输出,如:

1 1   1   1   jordan  jordan  9108121544  9108121544  testEmail   testEmail   testAddress testAddress testCounty  testCounty

解决方案

mysqli_fetch_array 的默认行为是返回结果行的关联索引和数字索引。在给定情况下这是不希望的。要限制返回的键,您可以使用函数的第二个参数:

<code class="php">$query_result_array = mysqli_fetch_array($query_result, MYSQLI_NUM); // numeric keys only
$query_result_array = mysqli_fetch_array($query_result, MYSQLI_ASSOC); // associative keys only</code>

或者,您可以使用以下函数:

<code class="php">$query_result_array = mysqli_fetch_row($query_result); // numeric keys only
$query_result_array = mysqli_fetch_assoc($query_result); // associative keys only</code>

仅使用数字或关联键,您可以消除输出中的重复数据。

以上是为什么我的 MySQLi 获取数组会导致输出加倍?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn