Подтвердить что ты не робот

Mysql_field_name для нового mysqli

У меня есть способ получить имя столбцов таблицы. Он отлично работает, но теперь я хочу обновиться до нового mysqli? (Я попробовал mysqli_fetch_field, но я не знаю, как подать заявку на этот случай, и я не уверен, что это опция выбора)

Как сделать то же самое с 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;
4b9b3361

Ответ 1

Я не уверен, есть ли лучший способ сделать это, но я проверил, что это работает, чтобы получить только имя столбцов и является новым mysqli:

$result = mysqli_query($con, 'SELECT * FROM myTable');
while ($property = mysqli_fetch_field($result)) {
    echo $property->name;
}

Ответ 2

Это способ реализовать эту недостающую функцию:

function mysqli_field_name($result, $field_offset)
{
    $properties = mysqli_fetch_field_direct($result, $field_offset);
    return is_object($properties) ? $properties->name : null;
}

Ответ 3

Вы можете заменить функцию mysql_field_name на mysqli_fetch_field_direct и использовать ее, как показано ниже:

$colObj = mysqli_fetch_field_direct($result,$i);                            
$col = $colObj->name;
echo "<br/>Coluna: ".$col;

Ответ 4

$sql = "SELECT * from myTable";
$res = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($res);
$fields = array_keys($row);
var_dump($fields);

Ответ 5

Это еще один простой способ распечатать каждое имя поля, таблицу и максимальную длину

$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);
}