Php 如何获取按列名索引的数组?

Php 如何获取按列名索引的数组?,php,jquery,mysql,json,pdo,Php,Jquery,Mysql,Json,Pdo,我有这个: $pdo = new PDO("mysql:host=$host;dbname=$databaseName;charset=utf8", $user, $pass); $query = "SELECT name FROM $tableName"; $stm = $pdo->prepare($query); $stm->execute(); $array = $stm->fetchAll(); $firephp->log($array); echo json_e

我有这个:

$pdo = new PDO("mysql:host=$host;dbname=$databaseName;charset=utf8", $user, $pass);
$query = "SELECT name FROM $tableName";
$stm = $pdo->prepare($query);
$stm->execute();
$array = $stm->fetchAll();
$firephp->log($array);
echo json_encode($array);
ajax的结果是:

[{"name":"mike","0":"mike"},{"name":"john","0":"john"},{"name":"tito","0":"tito"}]
但我想得到这个:

{"name":[{"mike","john","tito"}]}
哪种PDO fetch_风格,或者我应该在PHP中做什么来接收jQuery上需要的字符串


非常感谢。

您可以使用PDO获取列名:

$col_count = $stmt->columnCount();
$col_names = array();
for ($col = 0; $col < $col_count; $col++) {
    $col_names[] = $stmt->getColumnMeta($col)['name'];
}
$colu_count=$stmt->columnCount();
$col_names=array();
对于($col=0;$col<$col\u count;$col++){
$col_names[]=$stmt->getColumnMeta($col)['name'];
}

列名在
数组键($row)
中。不要调用
$。parseJSON
在执行
数据类型时:“json”
,jQuery会自动执行该操作。
信息模式
查询应该可以工作,确保您对表具有SELECT权限。我建议使用
数组键($row)
,如果查询不返回任何行,它将不起作用。谢谢Barmar。我重新安排了我的问题,也许现在更清楚了:)谢谢你的回答。我正在努力解决这个问题,我还没有做出决定,但我会在另一篇文章中提出更简单、更清晰的问题。再次感谢。完全改变这个问题是不公平的(我知道巴尔马。但事情是这样的:我试图了解一些PDO方面的事情,我在这方面非常新手,而且我在任何方面都不是专业人士,所以,利用我的可能性,我试图解释我为什么想要,但有人投了我的票。然后,我试图在一个新的帖子上问我想要什么,因为我一直在读关于这个话题的文章,我知道我错了问我想要什么。否决票是对的。但是,系统不允许我发布新的主题,说机器人禁止我发布新的东西,因为我在这个地方的无效参与,说我可以修改否决票来恢复它…所以我确实这样做了,试图再次获得投票,我想编辑我最初的问题我知道你的答案现在似乎离题了,但是,朋友,我能做些什么呢?我在学习,如果系统不让我犯错,怎么能继续?新手的学习系统不好,可能只有专业的,我不知道。但不是大众的。这似乎是一个坏主意对我来说是策略,但..嗯..不是我的系统。我重复..我理解有人建议我应该修改我的文字以成为一个被认可的用户…对不起Barmar,我几乎看不到其他机会。我是个新手:/It work!但是first line有“)”比它应该的更多。谢谢!:)
$array = $stm->fetchAll(PDO::FETCH_COLUMN, 0);
echo json_encode(array('name' => $array));