如何在mysql中检索数据库列名

时间:2013-01-11 15:49:33

标签: php mysql

我有一个名为“author”的数据库表,当有人注册然后访问他的个人资料时,我想显示结果

Name : user name here
Email : email here
location : location here

位置,电子邮件和名称是数据库列名。我可以退出数据库值,但我无法读取数据库列名称。我怎么能这样做?

更新: 这是我的代码

$query = "SELECT * 
                      FROM author 
                      WHERE id = {$author_id};
 $author_info = mysql_query($query, $connection);
$author_details  =  mysql_fetch_assoc($author_info);
foreach ($author_details as $fieldname) {
echo $fieldname;
}

从这段代码中我只得到名称,位置,电子邮件的值,但我还需要打印列名,如姓名,电子邮件,位置及其列值。

5 个答案:

答案 0 :(得分:2)

尝试此查询,

SHOW columns FROM your-table-name;

答案 1 :(得分:0)

拿这样的网址:

www.site.com/profile.php?id=1

你的profile.php看起来像这样:

$q = mysql_query("SELECT location, email, name FROM db WHERE id = " . $_GET['id']); 

while($r = mysql_fetch_array($q)){
    echo $r['location'] . $r['name'] . $r['email'];
}

只是一条指引。您对sql注入持开放态度,您应该考虑使用PDO。

答案 2 :(得分:0)

听起来您已经知道您希望这些列名称是什么,并且您希望它们是样板文本而不是从数据库的元数据中动态选择。在这种情况下,尝试将样板文本连接到您的数据上,然后为结果列提供一个列别名(为方便检索它,例如,PHP代码)。

例如:

SELECT CONCAT("Name: ",name) AS name, CONCAT("Location :",location) AS location,
CONCAT("Email: ",email) FROM author WHERE id = 1;

然而,想要数据库这样做似乎有点不寻常 - 比如通常情况。如果编写基于PHP的应用程序,您可以将样板文本作为HTML样板文本放在PHP页面中。

答案 3 :(得分:0)

mysql_field_name($index)

好的,我们假设你已经运行了查询来获取数据。这是您可以根据需要创建包含这些数据的表的方法。或者只是根据需要使用mysql_field_name($index)。通过这个例子,你会得到这个想法。

$numFields = mysql_num_fields($result); 

echo "<table id='whatever you want here'>";
        echo "<tr>";
            for($i = 0; $i < $numFields; $i++)
            {
                echo "<th>";
                    echo mysql_field_name($result,$i);
                echo "</th>";
            }
        echo "</tr>";

        while($row = mysql_fetch_row($result))
        {
            echo "<tr>";
                for($i = 0; $i < $numFields; $i++)
                {
                    echo "<td>$row[$i]</td>";
                }
            echo "</tr>";
        }
echo "</table>";

答案 4 :(得分:0)

在你的foreach中你需要使用这个表格:

foreach ($author_details as $fieldname=>$fieldvalue) {...}

如果没有fore =>中的{{1}},您只能获得值,并获得关键值和值。

请参阅php foreach documentation