我經常喜歡將我的結果以陣列的格式發送到其他地方(儘管請記住,如果您只是計劃在腳本的其他部分遍歷陣列,那麼這個額外的步驟只是浪費時間)。
這是我的單行程式碼,用於將 mysqli_result 集合轉換為陣列。
<?php
$sql = new MySQLi($host, $username, $password, $database);
$result = $sql->query("SELECT * FROM `$table`;");
for ($set = array (); $row = $result->fetch_assoc(); $set[] = $row);
print_r($set);
?>
輸出
陣列
(
[0] => 陣列
(
[id] => 1
[field2] => a
[field3] => b
),
[1] => 陣列
(
[id] => 2
[field2] => c
[field3] => d
)
)
我使用其他變體來適應情況,例如,如果我只選擇一個欄位
<?php
$sql = new MySQLi($host, $username, $password, $database);
$result = $sql->query("SELECT `field2` FROM `$table`;");
for ($set = array (); $row = $result->fetch_assoc(); $set[] = $row['field2']);
print_r($set);
?>
輸出
陣列
(
[0] => a
[1] => c
)
或者,要使陣列與主索引相關聯(程式碼假設主索引是表格中的第一個欄位)
<?php
$sql = new MySQLi($host, $username, $password, $database);
$result = $sql->query("SELECT * FROM `$table`;");
for ($set = array (); $row = $result->fetch_assoc(); $set[array_shift($row)] = $row);
print_r($set);
?>
輸出
陣列
(
[1] => 陣列
(
[field2] => a
[field3] => b
),
[2] => 陣列
(
[field2] => c
[field3] => d
)
)