解决了我已经使用了来自alfasin的答案,但由于它给了我太多的信息,我写了一个小脚本来只获取字段名称。因为字段名在前面,所以非常简单:
$here = array();
$SQL = "SHOW COLUMNS FROM User";
foreach($conn->query($SQL) as $row) {
$here[] = $row[0];
}
echo '<pre>';print_r($here);echo '<pre>';
这给我留下了包含列名的新数组$here
,希望这对将来的人有所帮助:)
原问题:
让我澄清一下,我有一个mysql表,我正在尝试从其中选择*,并在一个html列表<ol>
中显示结果。我可以很好地获取行数据,但我始终无法弄清楚如何获取表列名称,以便将它们分别与行进行匹配。下面是获取行数据的代码:
//get those results
$sql = "SELECT DISTINCT *
FROM User
WHERE Owner = '".$owner."'";
foreach($conn->query($sql) as $row) {
//split array in half
$hax = count($row);
$halfHax = $hax / 2;
//set up a for loop to give results
$u = 1;
for($i = 2; $i <= $halfHax; $i++){
echo $row[$u].'<br>';
$u++;
}
}
这给了我所有的结果,Owner == $owner
就像它应该的那样,但我希望列名与这些列一起列出,我可以硬编码出来,但可能会添加/更改更多的列,所以我不想。有什么想法吗?
发布于 2013-02-05 05:34:19
发布于 2013-02-05 05:41:24
将行作为关联数组来获取,以便将列名保留为数组键。这是我的建议:
$sql = "SELECT DISTINCT * FROM User WHERE Owner = :owner";
$sth = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':owner' => $owner);
while($row=$sth->fetch(PDO::fetch_assoc) as $row) {
//split array in half
$hax = count($row);
$halfHax = $hax / 2;
//set up a for loop to give results
foreach ($row as $key => $value) {
echo $key.'='.$value.'<br />';
}
}
仅列出列名:
array_keys($row);
https://stackoverflow.com/questions/14696020
复制相似问题