1

我正在尝试构建一个 PHP 函数,该函数允许我拥有一个 MySQL 数据库标头数组以查找特定字段。

function table($tablename,$id) {
  $post = mysql_query("SELECT * FROM $tablename WHERE ID = '$id'");
}

然后,我将如何将表头输出为相关行的有效微型查询。

例如。$post->title, $post->timestamp, $post->field4

4

4 回答 4

3

您需要 MySQLi 或 PDO_MySQL,但在您的情况下:

while ($row = mysql_fetch_assoc($post)) {
    echo $row['title'];
}

文档

请记住,不鼓励使用 mysql_* 函数。

于 2012-06-18T14:01:39.513 回答
3

一个简单的 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 文档。

于 2012-06-18T14:05:15.513 回答
2

怎么样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 或稍后删除......

于 2012-06-18T14:04:23.390 回答
2

您可以通过执行以下命令仅获取列名:

DESCRIBE `MyTable`;

它将返回一个包含 Field、Type、Key 等的结果集。

$query = mysql_query("DESCRIBE `MyTable`");
while($result = mysql_fetch_assoc($query)) {
    echo $result['Field'] . "\n";
}
于 2012-06-18T14:10:57.890 回答