Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示数据库中的数组_Php_Mysql_Sql_Arrays_Pdo - Fatal编程技术网

Php 显示数据库中的数组

Php 显示数据库中的数组,php,mysql,sql,arrays,pdo,Php,Mysql,Sql,Arrays,Pdo,我有这个数据库 id | domain | whois_server | --------------------------------------- 1 | ac | whois.nic.ac | 2 | ae | whois.nic.ae | 3 | id | whois.pandi.or.id | 如何显示没有id的数组 array ( 'ac' => 'whois

我有这个数据库

id | domain    | whois_server         |
---------------------------------------
1  | ac        | whois.nic.ac         |
2  | ae        | whois.nic.ae         |
3  | id        | whois.pandi.or.id    |
如何显示没有id的数组

array (
    'ac' => 'whois.nic.ac',
    'ae' => 'whois.nic.ae',
    'id' => 'whois.pandi.or.id',
)
我已经完成了以下代码:

$sql = "SELECT * FROM whois_server ";
$result = $db->prepare($sql);
$result->execute();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $whoisservers =  array_merge($whoisservers, array_map('trim', explode(",", $row[1])));
}
但似乎是:

array (
    [0] => whois.nic.ac
    [1] => whois.nic.ae
    [2] => whois.pandi.or.id
)

在循环中,可以为每个值向
$whoisseervers
变量添加键:

$sql = "SELECT domain, whois_server FROM whois_server";
$result = $db->prepare($sql);
$result->execute();

$whoisservers = [];
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $whoisservers[$row['domain']] =  $row['whois_server'];
}

print_r($whoisservers);
会更简单(更清晰)


如注释中所述,在SQL中不要选择不需要的字段。

通过将索引按
$row['domain']
和值按
$row['whois\u server']
添加到
$whoisservers
数组中

$whoisservers = [];
$sql = "SELECT * FROM whois_server ";
$result = $db->prepare($sql);
$result->execute();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $whoisservers[$row['domain']] =  $row['whois_server'];
}
print_r($whoisservers);

与使用
fetchAll
PDO::FETCH_KEY_PAIR
的其他答案解决方案略有不同:

$sql = "SELECT domain, whois_server FROM whois_server";
$result = $db->prepare($sql);
$result->execute();
$whoisservers = $result->fetchAll(PDO::FETCH_KEY_PAIR);
print_r($whoisservers);

为什么不使用此查询
从whois\u服务器中选择域、whois\u服务器
$sql = "SELECT * FROM whois_server ";
$result = $db->prepare($sql);
$result->execute();
$dataReturn = [];
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
      $dataReturn[$row['domain']] = $row['whois_server'];
}
print_r($dataReturn);
$sql = "SELECT domain, whois_server FROM whois_server";
$result = $db->prepare($sql);
$result->execute();
$whoisservers = $result->fetchAll(PDO::FETCH_KEY_PAIR);
print_r($whoisservers);