![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 362 Pomógł: 27 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Poddaję się. Pół dnia spędziłem na próbie znalezienia rozwiązania.
CEL: pobieram z MySQl ok. 15k rekordów, każdy zawiera dane w 28 kolumnach. Chcę je wyeksportować do pliku .xlsx bez żadnego dodatkowego formatowania, po prostu ciągiem jak lecą z bazy. PROBLEM: skrypt przekracza 256MB pamięci "Fatal error: Allowed memory size of 268435456 bytes exhausted" CO PRÓBOWAŁEM: - wypisać ciągiem 15k rekordów - zmienić jednostkowe ustalanie komórki na wypisywanie całej tablicy za pomocą funkcji $objPHPExcel->setActiveSheetIndex(0)->fromArray - podzielić zapis na kilka części: * otworzyć plik * zapisać 2k rekordów * zamknąć plik, zniszczyć zmienne niestety sposób nie zadziałał, bo PHPExcel wczytuje do pamięci cały plik(nawet jeśli chcę do niego tylko dopisać fragment) - użyć różnych opcji cachowania komórek. Niewiele pomogło
Limit nie do przekroczenia to ok. 7000 rekordów. Tyle maksymalnie udało mi się za jednym razem wyeksportować. Proszę o pomoc.. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 417 Pomógł: 44 Dołączył: 23.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Robisz to na localu czy na jakimś zew. hostingu ? Jedyną opcją jaką widzę to zwiększenie pamięci, na localu albo na własnym serwerze to nie problem.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 362 Pomógł: 44 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
No to może po prostu połącz się przez ssh, i wygeneruj na serwerze zrzut bazy.
Żeby było do excela to tu masz taki przykład: http://www.debianadmin.com/export-mysql-da...a-csv-file.html |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 00:40 |