Разделитель по умолчанию convert-csv-to-json
использует точку с запятой (;
). Если вы хотите использовать другой разделитель, такой как |
файл, которым вы поделились, вам нужно определить его явно. Например :
csvToJson.fieldDelimiter('|').generateJsonFileFromCsv(fileInputName, fileOutputName);
Я вполне уверен, это - зависимый базы данных. Из-за этого это - что-то, чего необходимо стараться избегать. Однако я думаю, что можно достигнуть того, что Вы хотите путем включения буферизированные запросы . Если это не работает, можно всегда вытягивать результат в массив с fetchAll
. Оба решения имеют последствия для Вашей производительности приложений, поэтому думайте дважды об этом, если наборы результатов являются большими.
Вы, вероятно, захотите смотреть на некоторые классы SPL PHP, которые могут быть расширены для обеспечения подобного массиву доступа к объектам.
см. слайд 31 от этой презентации , можно сделать $statement->rewind()
, если это относится к буферизированному запросу. При использовании mysql можно эмулировать буферизованные запросы при помощи PDO_MYSQL_ATTR_USE_BUFFERED_QUERY
:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, 1);
@NoahGoodrich указал на Вас на spl. Вот пример, который всегда работает:
$it = new ArrayIterator($stmt->fetchAll());