在Array中存储Mysql行

时间:2018-03-19 10:11:33

标签: php mysql arrays

我想知道如何在数组中存储值,因为我只能echo $row['Name'],但如果我想在数组中存储多个值,我什么也得不到。

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

if (!$conn) {
    die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}

$sql = "SELECT * FROM " . $dbname . " WHERE id ='$id'";

$query = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_array($query)) {

    $thisArray[] = array( $row['Name'],$row['accountNumber']);
}

echo $thisArray[0];

2 个答案:

答案 0 :(得分:2)

由于您只想将SQL语句的结果加载到数组中,因此可以使用mysqli_fetch_all()并只获取所需的列。

输出结果时,应输出数组print_r() ...

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

if (!$conn) {
    die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}

$sql = "SELECT Name,accountNumber FROM " . $dbname . " WHERE id ='$id'";

$query = mysqli_query($conn, $sql);
$thisArray = mysqli_fetch_all($query, MYSQLI_ASSOC);
print_r( $thisArray[0]);

<强>更新 如果您想通过其中一列重新排列数组键,array_column()可以执行此操作...

$thisArray = array_column($thisArray, 'accountNumber', 'Name');

答案 1 :(得分:0)

您必须首先在循环外部初始化阵列,当您回显它时,除非需要特定的密钥,否则不需要指定密钥。 根据您的上述代码:

$thisArray = [];
while ($row = mysqli_fetch_array($query)) {
    $thisArray[] = [
        $row['Name'],
        $row['accountNumber']
    ];
}

echo $thisArray;