Как преобразовать мой номер базы данных в текст перед экспортом в CSV?

1

Я надеюсь, что это будет легко. Как я могу преобразовать идентификационный номер в базу данных mysql в текст, прежде чем экспортировать его в файл csv?

Вот мой код, который экспортирует мои данные:

$con = mysqli_connect('localhost', 'user', 'password', 'database');

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment;filename=csv_file.csv');
$output = fopen('php://output', 'w');

$query = 'SELECT * FROM table';
$result = mysqli_query($con, $query);

while ($field = mysqli_fetch_assoc($result)){
    fputcsv($output, $field);
}

Я могу экспортировать данные из базы данных в csv просто отлично, но есть ли способ конвертировать идентификационный номер в текст, чтобы excel не удалял ведущие нули?

Благодарю!

  • 0
    Либо окружите его одинарными кавычками, либо приведите к тексту .
  • 0
    Почему в ваших идентификаторах есть начальные нули?
Показать ещё 3 комментария
Теги:
mysqli

2 ответа

0
Лучший ответ

CSV не содержит информацию о типе поля, поэтому вам нужно форматировать и определять тип данных при импорте в Excel, а не в процессе экспорта.

  • 0
    Как мне это сделать? В моем PHP-код или в Excel?
  • 0
    @stalwil В Excel - инструмент импорта имеет опции для выбора типов полей (столбцов), вы можете загрузить идентификаторы в виде чисел, а затем присвоить им форматирование, соответствующее вашим потребностям (например, добавить начальные 0 и т. д.), или фактически изменить его на строковое.
0

Почему бы просто не обернуть их кавычками?

Предполагая, что ваши идентификаторы имеют индекс 0:

while ($field = mysqli_fetch_assoc($result)){
    $field[0] = '"' . field[0] . '"';
    fputcsv($output, $field);
}
  • 0
    Я надеялся, что это сработает ... но он все еще отображается в экспортированном CSV-файле как 1, 2, 3 ... и в моей базе данных у меня есть 00001, 00002, 00003.
  • 0
    Прекрасно работает для меня; Вы проверили, что на самом деле получаете «00001» и т. д.? И вы смотрите на простое содержимое CSV (с текстовым редактором или кошкой)?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню