Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
MySQL вставка большого объёма текста |

03.02.2009, 15:25
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
MySQL вставка большого объёма текста
Есть форма с текстовым полем, туда вставляется текст. Текст может быть в несколько мегабайт. Скрипт на пхп принимает этот текст и должен вставить его в MYSQL бд.
Поле для вставки имеет тип LONGTEXT.
Запрос имеет вид
"INSERT INTO news (text) VALUES ('".mysql_real_escape_string($text)."')"
Но при вставке текста 1,5 мегабайта, сервак возвращает
#2006 - MySQL server has gone away
Собственно вопрос, как вставить в БД текст в несколько метров, если прав на использование LOAD_FILE нет.
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
|
|
|

03.02.2009, 15:35
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
Можно раздеялить на более мелкие части запрос.
Есть форма с текстовым полем, туда вставляется текст...
Текст может быть в несколько мегабайт.
Фигасе, не легше уже файлом принемать данные для вставки?
|
|
|

03.02.2009, 15:41
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
а из файла как вставлять ?
LOAD_FILE отключен, тут не суть как принять данные. что они прямиком из текстового поля , что из файла в переменную идут.
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
|
|
|

03.02.2009, 15:41
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
2006 - MySQL server has gone away
Возникает когда дофига коннектов к серверу БД и при этом конфиг не оптимизирован... Можно подточить конфиг, и думаю, что всё будет нормально. А вообще полтора метра вставлять это жесть... Лучше сделать через аплоад файлов, а вставлять урлу...
Ты просто пойми, что ты скорее всего, эти 1.5 метра передаёшь на сервер в режиме точка-к-точке, то есть он инициирует запрос, и ждёт от тебя полных данных, пока не наступает какой-то таймаут, и тебе вываливается эта ошибка... Разумеется, что операция вставки на самом сервере пройдёт в считанные секунды... В общем нужна оптимизация скрипта...
Последний раз редактировалось groundhog; 03.02.2009 в 15:45..
|
|
|

03.02.2009, 15:44
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
Цитирую:
Другой распространенной причиной получения ошибки MySQL server has gone away является выдача команды "закрытия" на соединении MySQL с последующей попыткой выполнить запрос на закрытом соединении.
Может php закрывает конект до того как успевает вставить?
|
|
|

03.02.2009, 15:45
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
2 SQLHACK:
http://zalil.ru/upload/26611089
скрипт, который позволит вставить в БД что хочешь любого размера
|
|
|

03.02.2009, 15:49
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
Сообщение от Pashkela
2 SQLHACK:
http://zalil.ru/upload/26611089
скрипт, который позволит вставить в БД что хочешь любого размера
Наверно slil:
http://slil.ru/26611089
|
|
|

03.02.2009, 16:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
SQLHACK Посмотреть SHOW VARIABLES на предмет max_allowed_packet - это собственно и будет максимальная длина строки которую можно передать/получить из БД.
mysql_query('SET max_allowed_packet=16M'); у меня почему то не заработал, так что остается либо править конфиг мускуля - что вряд ли позволят, либо бить запрос на части
http://dev.mysql.com/doc/refman/4.1/...allowed_packet
|
|
|

03.02.2009, 19:00
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
вопрос решён
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
|
|
|

04.02.2009, 13:43
|
|
Постоянный
Регистрация: 13.10.2007
Сообщений: 347
Провел на форуме: 1345617
Репутация:
115
|
|
Сообщение от Gifts
SQLHACK
mysql_query('SET max_allowed_packet=16M'); [/URL]
я думал что max_allowed_packet=16M через хтач проще замутить... если не рпав - поправте...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|