繁体   English   中英

如何使用 MySQLi 获取单列值?

[英]How to get single column values using MySQLi?

我正在尝试从 MySQL 数据库中获取一维数组中的列表或电子邮件。 但是,我得到的是多维数组,而不是数组:

$query = "SELECT DISTINCT `EmailAddress` FROM `Emails` WHERE `JobID` = 1";
$result = $conn->query($query);
if (!$result) {
    printf("Query failed: %s\n", $mysqli->error);
    exit;
}
while ($row = $result->fetch_row()) {
    $rows[] = $row;
}
$result->close();
$conn->close();
var_dump($rows); // This will return array(2) { [0]=> array(1) { [0]=> string(24) "abc@abc.com" } [1]=> array(1) { [0]=> string(17) "hello@gmail.com" } }
//This is how array should be
$MyV = array("abc@abc.com", "hello@gmail.com");
var_dump($MyV); //this is an array I need to have: array(2) { [0]=> string(11) "Abc@abc.com" [1]=> string(11) "hello@g.com" }

fetch_assoc

while($row = $result->fetch_assoc()) {
  $rows[]=$row['EmailAddress'];
}

在循环中的这一点,您可以访问您正在谈论的简单数组。

while($row = $result->fetch_row()) {
  $rows[]=$row;
}

因此,如果您想对该数组执行任何操作,请将其分配给某个变量或使用该数组调用函数,如下所示:

while($row = $result->fetch_row()) {
    doSomethingFun($row);
}

上面的答案是正确的,但这里有一个示例,其中对您当前的源代码进行了最少的修改。

while($row = $result->fetch_row()) {
  $rows[]=$row[0];
}

现在$rows将是一个填充有电子邮件地址的一维数组。

您还可以使用foreach并将单列保存到新数组中。

foreach ($result as $row) {
    $rows[] = $row['EmailAddress'];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM