Выборка столбцов из MySQL с названием столбцов

Есть задание при выборке столбцов, выводились названия этих столбцов. Применяю такой код:

// create empty variable to be filled with export data
$csv_export = '';

// query to get data from database
$query = mysqli_query($conn, "SELECT `file_id` as 'FILE ID', `md5` as 'MD5', `name` as 'NAME', `file` as 'FILE', `files`.`shorturl` as 'SHORT URL', `ip_address` as 'IP ADDRESS', `created_at` as 'CREATE AT', REPLACE(`user_agent`, ';', ' :') as 'USER AGENT' FROM `user_info` JOIN `files` ON `files`.`id`=`user_info`.`file_id` WHERE `md5` IN ($final_file)");

$field = mysqli_num_fields($query);

// create line with field names
for($i = 0; $i < $field; $i++) {
  $csv_export.= [mysqli_fetch_field_direct($query, $i)->name].';';
}

// newline (seems to work both on Linux & Windows servers)
$csv_export.= '
';

// loop through database query and fill export variable
while($row = mysqli_fetch_array($query)) {
  // create line with field values
  for($i = 0; $i < $field; $i++) {
    $csv_export.= ''.$row[mysqli_fetch_field_direct($query,$i)->name].';';
  }
  $csv_export.= '
';
}

file_put_contents('Report.csv', $csv_export);

Сама выборка работает, но вместо названий столбцов пишет Array.

Сама выборка работает, но вместо названий столбцов пишет Array.

В логах пишет такую ошибку:

PHP Notice:  Array to string conversion

Ругается вот на эту строку:

  $csv_export.= [mysqli_fetch_field_direct($query, $i)->name].';';

var_dump($query); выводит такую информацию:

object(mysqli_result)#1 (5) { 
["current_field"]=> int(0) 
["field_count"]=> int(8) 
["lengths"]=> NULL 
["num_rows"]=> int(4) 
["type"]=> int(0) }

Где что надо заменить или дописать что бы оно работало?


Ответы (1 шт):

Автор решения: Sergey Chernyshevich

Уже нашёл в чём была проблема. В этой строке:

$csv_export.= [mysqli_fetch_field_direct($query, $i)->name].';';

Нужно было убрать квадратные скобки. [ , ] .

→ Ссылка