25

我有一种方法来获取表列的名称。它工作正常,但现在我想更新到新的 mysqli ?(我尝试了 mysqli_fetch_field 但我不知道如何应用于这种情况,我不确定它是否是 wright 选项)

如何用 mysqli 做同样的事情?:

$sql = "SELECT * from myTable";
$result = mysql_query($sql,$con);
$id = mysql_field_name($result, 0);
$a = mysql_field_name($result, 1);

echo $id;
echo $a;
4

5 回答 5

43

这是实现这个缺失功能​​的方法:

function mysqli_field_name($result, $field_offset)
{
    $properties = mysqli_fetch_field_direct($result, $field_offset);
    return is_object($properties) ? $properties->name : null;
}
于 2014-12-10T09:32:47.523 回答
18

我不确定是否有更好的方法来做到这一点,但我检查了这是否可以仅获取列的名称并且是新的 mysqli :

$result = mysqli_query($con, 'SELECT * FROM myTable');
while ($property = mysqli_fetch_field($result)) {
    echo $property->name;
}
于 2013-02-10T12:07:18.793 回答
7

您可以将函数替换mysql_field_namemysqli_fetch_field_direct并使用它,如下所示:

$colObj = mysqli_fetch_field_direct($result,$i);                            
$col = $colObj->name;
echo "<br/>Coluna: ".$col;
于 2014-01-12T14:43:18.943 回答
2

这是打印每个字段的名称、表格和最大长度的另一种简单方法

$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";

if ($result=mysqli_query($con,$sql))
{
   // Get field information for all fields
   while ($fieldinfo=mysqli_fetch_field($result))
   {
      printf("Name: %s\n",$fieldinfo->name);
      printf("Table: %s\n",$fieldinfo->table);
      printf("max. Len: %d\n",$fieldinfo->max_length);
   }
   // Free result set
   mysqli_free_result($result);
}
于 2017-04-11T06:19:20.643 回答
1
$sql = "SELECT * from myTable";
$res = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($res);
$fields = array_keys($row);
var_dump($fields);
于 2013-01-31T15:53:34.083 回答