Jump to content

Recommended Posts

Hi guys,

 

I have a mysql database, in which I want to store some files as longblobs. I'm using PEAR to connect to the DB. So far so good... until the files get over 16MB; the server takes ages to do the query and finally breaks without actually performing it.

 

I'm reading in the file to a variable in memory and outputting that variable in the SQL statement, e.g.

"INSERT INTO table VALUES('$fileContents');"

 

What's weird (and what makes me think it's not a max_allowed_packet problem) is that if I use MySQL's LOAD_FILE() function it works fine:

"INSERT INTO table VALUES(LOAD_FILE('$pathToFile'));"

 

Any ideas?

 

David

Link to comment
https://forums.phpfreaks.com/topic/48446-inserting-large-strings-into-a-mysql-db/
Share on other sites

Hmm... I don't think it's a timeout issue, it seems more to be that the PHP-mysql interface can't handle the data. I'm testing this on my local machine, and a 15MB file takes less than a second, whereas a 16.5MB file hangs the server for a minute or so  :(

Unfortunately this is part of a complex application, and it's not really feasible to change the way that the files are stored now. I have found other posts on the internet from people who have had similar problems and ended up giving up though... someone must know the answer!

Chances are either PHP or MYSQL have a memory limit of 16mbs change that to be something higher and you should be good.

 

http://us2.php.net/manual/en/ini.core.php

 

Resource Limits

 

Table H.5. Resource Limits

Name Default Changeable Changelog

memory_limit "128M" PHP_INI_ALL "8M" before PHP 5.2.0, "16M" in PHP 5.2.0

 

 

Hi frost110 - you're right, it sounds like a PHP memory limit problem and indeed the default memory_limit for my version of PHP (4.4.4) is 16MB.

 

However, I have tried increasing this and it doesn't seem to make any difference. It is interesting to note that the memory_limit variable does not appear in phpInfo() - does this mean that there is no limit set by PHP?

 

Thanks for your help  :)

Check the php.ini for the max post size. Most of the time it is between 8-16 mb. you can change that at the top of your script by using ini_set like this:

 

ini_set('max_upload_size', '300000');

 

ini_set('max_post_size', '300000');

 

You can try different size limits to get different results.

 

They should come right after you opening tag before anyting is sent to the page.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.