如何使用PHP获取列中的所有值?

Gbe*_*t90 27 php mysql arrays

我一直在寻找这个,但仍然无法找到解决方案:如何从mySQL列获取所有值并将它们存储在数组中?

例如:表名:客户列名:ID,名称行数:5

我想得到这个表中所有5个名字的数组.我该怎么做呢?我正在使用PHP,我试图只是:

SELECT names FROM Customers
Run Code Online (Sandbox Code Playgroud)

然后使用

mysql_fetch_array
Run Code Online (Sandbox Code Playgroud)

PHP函数将这些值存储在数组中.

Fél*_*ier 31

这是使用PDOmysqli执行此操作的简单方法

$stmt = $pdo->prepare("SELECT Column FROM foo");
// careful, without a LIMIT this can take long if your table is huge
$stmt->execute();
$array = $stmt->fetchAll(PDO::FETCH_COLUMN);
print_r($array);
Run Code Online (Sandbox Code Playgroud)

或者,使用mysqli

$stmt = $mysqli->prepare("SELECT Column FROM foo");
$stmt->execute();
$array = [];
foreach ($stmt->get_result() as $row)
{
    $array[] = $row['column'];
}
print_r($array);
Run Code Online (Sandbox Code Playgroud)
Array
(
    [0] => 7960
    [1] => 7972
    [2] => 8028
    [3] => 8082
    [4] => 8233
)
Run Code Online (Sandbox Code Playgroud)


Dhr*_*hak 27

请注意,这个答案已经过时了!从PHP7开始,mysql扩展不再可用.如果要在PHP7中使用旧的mysql函数,则必须从PECL编译ext/mysql.查看更多当前解决方案的其他答案.


这可以工作,请参阅此处的更多文档:http: //php.net/manual/en/function.mysql-fetch-array.php

$result = mysql_query("SELECT names FROM Customers");
$storeArray = Array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $storeArray[] =  $row['names'];  
}
// now $storeArray will have all the names.
Run Code Online (Sandbox Code Playgroud)

  • 嘿! 这个流行问题的答案在PHP 7中打破,因为不再支持`mysql_*`.你可以编辑它,以便它使用更现代的API(PDO或MySQLi)吗?或者,您是否会反对其他人编辑此信息? (11认同)

小智 5

我会使用 mysqli 连接来连接到数据库。下面是一个例子:

$connection = new mysqli("127.0.0.1", "username", "password", "database_name", 3306);
Run Code Online (Sandbox Code Playgroud)

下一步是选择信息。在你的情况下,我会这样做:

$query = $connection->query("SELECT `names` FROM `Customers`;");
Run Code Online (Sandbox Code Playgroud)

最后,我们通过键入以下所有名称创建一个数组:

$array = Array();
while($result = $query->fetch_assoc()){
    $array[] = $result['names'];
}

print_r($array);
Run Code Online (Sandbox Code Playgroud)

所以我在这段代码中做了什么:我使用 mysql 查询从表中选择了所有名称。接下来我使用一个 while 循环来检查 $query 是否有下一个值。如果是这样,while 循环将继续并将该值添加到数组 '$array' 中。否则循环停止。最后我使用 'print_r' 方法打印数组,以便您可以看到一切正常。我希望这可以帮到你。