Php 如何在mysql中检索数据库列名
我有一个名为author的数据库表,当有人注册并访问他的个人资料时,我希望显示类似的结果Php 如何在mysql中检索数据库列名,php,mysql,Php,Mysql,我有一个名为author的数据库表,当有人注册并访问他的个人资料时,我希望显示类似的结果 Name : user name here Email : email here location : location here 位置、电子邮件和名称是数据库列名。我可以重设数据库值,但不能重设数据库列名。我该怎么做 更新: 这是我的密码 $query = "SELECT * FROM author WHERE
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;
}
从这段代码中,我只得到name、location、email的值,但我还需要打印name、email、location等列名及其列值。尝试此查询
SHOW columns FROM your-table-name;
以如下url为例:
www.site.com/profile.php?id=1
$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'];
}
您的profile.php如下所示:
www.site.com/profile.php?id=1
$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。听起来您已经知道希望这些列名是什么,并且希望它们是样板文本,而不是从数据库的元数据中动态选择。在这种情况下,请尝试将样板文本连接到数据上,然后为生成的列提供一个列别名,以便在PHP代码中检索 例如:
SELECT CONCAT("Name: ",name) AS name, CONCAT("Location :",location) AS location,
CONCAT("Email: ",email) FROM author WHERE id = 1;
然而,这看起来确实有点不寻常,需要数据库去做-通常情况下,例如,如果编写一个基于PHP的应用程序,您会将模板文本作为HTML模板文本放在PHP页面中。mysql\u field\u name$index
好的,假设您已经运行了查询以获取数据。这就是如何使用这些数据创建表的方法。或者根据需要使用mysql\u field\u 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>";
在foreach中,您需要使用以下表格:
foreach ($author_details as $fieldname=>$fieldvalue) {...}
如果在foreach中没有=>,则只获得值,使用它可以获得键和值
请参阅php给出您正在使用的代码。不能重设数据库列名是什么意思?当您执行selectname、Email、Location FROM Author时,标题称为column namesmysql\u field\u Name这就是我要找的函数。谢谢,不客气。我把它放在答案的开头,供其他人将来参考。