Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с записью большого текста в MySQL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
BadSanta
Отправлено: 21 Июля, 2011 - 18:04:25
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Доброго времени суток.

При записи строки в MySQL через PHP появляется пустой экран, и скрипт останавливается.
Продебажил, дело именно в большом тексте (примерно 10000 символов). Если уменьшить наполовину, то все срабатывает.
Через PhpMyAdmin вставляется весь текст.
Текст без HTML тегов, кавычек и т.д.

Подскажите, в чем может быть проблема?
 
 Top
Roler
Отправлено: 21 Июля, 2011 - 19:28:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


Помог: 1 раз(а)




Тип поля в БД хоть укажите и сам текст запроса.
Что там у вас за данные, опять же.
 
 Top
BadSanta
Отправлено: 22 Июля, 2011 - 12:06:41
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Тип поля TEXT, но пробовал и LONGTEXT
Запрос: INSERT INTO pages (textFull) VALUES ('Большой текст').

Текст без кавычек, спец сиволов и т.д. Обычный текст-утка из 10000 символов.

Запрос рабочий. Если текс уменьшить, то запись проходит.

Может какие-то настройки MySQL надо поменять?
 
 Top
grefon
Отправлено: 22 Июля, 2011 - 12:40:39
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




BadSanta, текст обрезается или он вообще не добавляется?
Если вообще не добавляется, то проэкранируйте его с помощью mysql_escape_string.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
BadSanta
Отправлено: 22 Июля, 2011 - 13:15:35
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Текст вообще не добавляется, и скрипт на этой записи останавливается - белый экран.

Экранировать пытался и обычным mysql_escape_string и зендовским quoteInto, результат такой же.
 
 Top
grefon
Отправлено: 22 Июля, 2011 - 13:34:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Смотрите тексты ошибок: http://phpfaq[dot]ru/debug


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
BadSanta
Отправлено: 25 Июля, 2011 - 09:28:33
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Выставил
ini_set('display_errors',1);
error_reporting(E_ALL);

посмотрел логи, все чисто.

Проблема осталась.

Запрос:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT IGNORE INTO pages ( idPage, typePage, dt, bigPicture, smallPicture, name, announcement, author, source, sourceUrl, textFull, STATUS )
  3. VALUES ( '490', 'news', '2004-08-30 11:20:54', '', '', 'Основной аргумент против', 'По данным американских исследователей женщины, пьющие сладкие газированные напитки каждый день больше подвержены заболеванию диабетом, чем те, которые пьют их несколько раз в месяц', '', '', '', 'ДЛИННЫЙ ТЕКСТ', 'active')


Дамп таблицы в файле
Скачать файл: pages(2).sql.gz
Скачан раз: 131

(Отредактировано автором: 25 Июля, 2011 - 09:30:30)

 
 Top
EuGen Администратор
Отправлено: 25 Июля, 2011 - 09:50:11
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Настройку max_post_size проверьте.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
White
Отправлено: 25 Июля, 2011 - 10:28:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




10000 символов это не так уж и много, в UTF8 около 60кб, max_post_size по умолчанию 8Мб, так что вряд ли здесь проблема. длина longtext 4294967295 символа, так что проблемма не здесь так же. Я конечно очень сильно сомневаюсь, но вы не пытаетесь случайно получить fulltext через GET, а потом передать его в таблицу?

(Отредактировано автором: 25 Июля, 2011 - 10:29:24)



-----
if(time()>1356048000) die();
 
 Top
BadSanta
Отправлено: 25 Июля, 2011 - 11:10:27
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Задача состоит вообще в том, чтобы переместить некоторые данные из одной таблицы в другую.
Я делаю SELECT, выбираю нужные записи, и потом INSERT-ом записываю их в новую таблицу.

Записи с меньшим количеством символов записываються без проблем, а как только доходит до текста побольше, все вырубаеться. Если пропустить эту запись с большим текстом, скрипт идет дальше, пока не наткнется на следующий большой текст.

post_max_size у меня вообще стоит 100M

Может дело в MySQL my.cnf ???
Прикрепил файл
Скачать файл: my.cnf
Скачан раз: 144
 
 Top
White
Отправлено: 25 Июля, 2011 - 11:15:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




BadSanta
а не проще сделать что-то вроде
CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `table1` (`field1`, `field2`) SELECT (`field3`, `field4`) FROM `table2` WHERE `id`="n"


-----
if(time()>1356048000) die();
 
 Top
BadSanta
Отправлено: 25 Июля, 2011 - 11:19:50
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




К сожалению в моей ситуации такой вариант не подходит, некоторые значения полей мне нужно изменить перед записью. Но почему то более чем уверен, что результат был бы таким же
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB