我正在尝试构建一个 PHP 函数,该函数允许我拥有一个 MySQL 数据库标头数组以查找特定字段。
function table($tablename,$id) {
$post = mysql_query("SELECT * FROM $tablename WHERE ID = '$id'");
}
然后,我将如何将表头输出为相关行的有效微型查询。
例如。$post->title, $post->timestamp, $post->field4
您需要 MySQLi 或 PDO_MySQL,但在您的情况下:
while ($row = mysql_fetch_assoc($post)) {
echo $row['title'];
}
请记住,不鼓励使用 mysql_* 函数。
一个简单的 PHP 脚本来获取MySQL中的字段名称:
<?php
$sql = "SELECT * FROM table_name;";
$result = mysql_query($sql);
$i = 0;
while($i<mysql_num_fields($result))
{
$meta=mysql_fetch_field($result,$i);
echo $i.".".$meta->name."<br />";
$i++;
}
?>
输出:
0.id
1.todo
2.due date
3.priority
4.type
5.status
6.notes
希望这可以帮助!取自 php.net 文档。
怎么样mysql_fetch_assoc($post)
?
要将所有字段名称放入一个单独的数组中:
$post = mysql_fetch_assoc($post);
$fields = array();
foreach($post as $title => $value){
$fields[] = $title;
}
您可以在 while 循环中使用它来遍历所有行并获取字段值(以及它们的名称):
while($p = mysql_fetch_assoc($post)){
$title = $p['title'];
$timestamp = $p['timestamp'];
//And so on...
}
编辑:Pierpaolo 是对的,你应该使用另一个 mysql 实现,因为旧的将在 PHP 5.5/5.6 或稍后删除......
您可以通过执行以下命令仅获取列名:
DESCRIBE `MyTable`;
它将返回一个包含 Field、Type、Key 等的结果集。
$query = mysql_query("DESCRIBE `MyTable`");
while($result = mysql_fetch_assoc($query)) {
echo $result['Field'] . "\n";
}