Re: Allowed memory size exhausted
| From: | Aziz Saleh | Date: | Mon, 12 Oct 2015 02:21:05 +0000 |
| Subject: | Re: Allowed memory size exhausted | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-325182@lists.php.net to get a copy of this message | ||
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.