Re: Allowed memory size exhausted
| From: | Karl DeSaulniers | Date: | Mon, 12 Oct 2015 02:38:31 +0000 |
| Subject: | Re: Allowed memory size exhausted | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-325185@lists.php.net to get a copy of this message | ||
On Oct 11, 2015, at 9:33 PM, Aziz Saleh <azizsaleh@gmail.com> wrote:
>
>
> On Sun, Oct 11, 2015 at 10:27 PM, Karl DeSaulniers <karl@designdrumm.com> wrote:
> On Oct 11, 2015, at 9:21 PM, Aziz Saleh <azizsaleh@gmail.com> wrote:
>
> >
> >
> > On Sun, Oct 11, 2015 at 10:14 PM, Karl DeSaulniers <karl@designdrumm.com> wrote:
> > Getting this error:
> > Fatal error: Allowed memory size of 103809024 bytes exhausted (tried to allocate 523800
> > bytes) in [...]/html/wp-includes/cache.php on line 113
> >
> > It is being generated by a script that reads a excel file and then updates a database with
> > the new info.
> > I have went in and unset all arrays that were set along the way to alleviate to no avail.
> > Got down to 9 bytes once though.
> > However, my question isn't about allocating memory. I know how to do that server
> > side, but I want to avoid that.
> >
> > This is a simple order database with fields filled with order info. Nothing complicated.
> > What I am wondering is what is the best way to avoid this memory issue knowing there will
> > be a lot of entries to go through.
> > To read each field from the spread sheet and insert individually? Read all fields from
> > spread sheet and then insert individually?
> > Any known ways of reading all and inserting all at the same time? Suggestions?
> >
> > TIA,
> > Best,
> >
> > Karl DeSaulniers
> > Design Drumm
> > http://designdrumm.com
> >
> >
> >
> >
> > To avoid memory issues, I would do each row individually, reading the file line by line,
> > using something like fgetcsv/fgets.
> >
> > If you attempt the read entire file and insert, you would be a hostage to the file size of
> > the file. Doing it line by line way avoids this issue even if you have a 10GB file.
>
>
> Thanks Aziz,
> That is what I was thinking since at the moment it is how you describe. Reading everything from
> the sheet first and then inserting.
> My task is now how to iterate each individually, however I have a dependent. PHPExcel.
> Not sure how to utilize this and read only one line at a time.
> I appreciate the corroboration.
>
> Best,
>
> Karl DeSaulniers
> Design Drumm
> http://designdrumm.com
>
> Is exporting the Excel into a comma delimited csv and processing that instead an option?
It is an option, but PHPExcel doesn't work well with csv. When I used it, it grabbed the html
of the page as part of the text.
Don't have time to go figuring out that route at the moment. I may have a solution with what I
currently have.
Trying my hand at reading each individually. If that doesn't work, I may try the csv route or
forgo all together.
If I could drop PHPExcel and use a better solution, I would.
Don't know of any and no time to research. Unfortunately.
Best,
Karl DeSaulniers
Design Drumm
http://designdrumm.com