首頁  >  文章  >  資料庫  >  為什麼我的 MySQLi 取得數組會導致輸出加倍?

為什麼我的 MySQLi 取得數組會導致輸出加倍?

DDD
DDD原創
2024-10-29 05:35:311053瀏覽

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