![]() |
MySQL вставка большого объёма текста
Есть форма с текстовым полем, туда вставляется текст. Текст может быть в несколько мегабайт. Скрипт на пхп принимает этот текст и должен вставить его в MYSQL бд.
Поле для вставки имеет тип LONGTEXT. Запрос имеет вид "INSERT INTO news (text) VALUES ('".mysql_real_escape_string($text)."')" Но при вставке текста 1,5 мегабайта, сервак возвращает #2006 - MySQL server has gone away Собственно вопрос, как вставить в БД текст в несколько метров, если прав на использование LOAD_FILE нет. |
Можно раздеялить на более мелкие части запрос.
Цитата:
|
а из файла как вставлять ?
LOAD_FILE отключен, тут не суть как принять данные. что они прямиком из текстового поля , что из файла в переменную идут. |
Цитата:
Ты просто пойми, что ты скорее всего, эти 1.5 метра передаёшь на сервер в режиме точка-к-точке, то есть он инициирует запрос, и ждёт от тебя полных данных, пока не наступает какой-то таймаут, и тебе вываливается эта ошибка... Разумеется, что операция вставки на самом сервере пройдёт в считанные секунды... В общем нужна оптимизация скрипта... |
Цитирую:
Цитата:
|
2 SQLHACK:
http://zalil.ru/upload/26611089 скрипт, который позволит вставить в БД что хочешь любого размера |
Цитата:
http://slil.ru/26611089 |
SQLHACK Посмотреть SHOW VARIABLES на предмет max_allowed_packet - это собственно и будет максимальная длина строки которую можно передать/получить из БД.
mysql_query('SET max_allowed_packet=16M'); у меня почему то не заработал, так что остается либо править конфиг мускуля - что вряд ли позволят, либо бить запрос на части http://dev.mysql.com/doc/refman/4.1/...allowed_packet |
вопрос решён
|
Цитата:
|
| Время: 11:12 |