Почему я не могу сохранить длинный текст в моей базе данных MySQL? - PullRequest
2 голосов
/ 14 января 2012

я пытаюсь сохранить в своей базе данных длинный текст (около 2500 символов), введенный моими пользователями через веб-форму и переданный на сервер с помощью php.

Когда я смотрю в phpmyadmin, текст получаетрастениеводство.Как я могу настроить свою таблицу, чтобы получить полный текст?Это моя таблица конфигурации:

CREATE TABLE `extra_879` (
  `id` bigint(20) NOT NULL auto_increment,
  `id_user` bigint(20) NOT NULL,
  `title` varchar(300) NOT NULL,
  `content` varchar(3000) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id_user` (`id_user`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

Взгляните на поле content , которое имеет ограничение в 3000 символов, но текст всегда получает обрезку на 690 символов .Спасибо за любую помощь!

РЕДАКТИРОВАТЬ : Я нашел проблему, но я не знаю, как ее решить.Запрос получает кадрирование всегда в одном и том же символе, специальном символе: ù

РЕДАКТИРОВАТЬ 2 : Это обрезанный запрос:

INSERT INTO extra_879 (id,id_user,title,content) VALUES (NULL,'1','Informazione Extra','
Riconoscimenti
Laurea di ingegneria presa a le 22 anni e in il terso posto della promozione
Diploma analista di sistemi ottenuto il rating massimo 20/20, primo posto della promozione.
Borsa di Studio (offerta dal Ministero Esteri Italiano) vinta nel 2010 (Valutazione del territorio attraverso le nueve tecnologie)
Pubblicazione di paper; Stima del RCS della nave CCGS radar sulla base dei risultati di H. Leong e H. Wilson. http://www.ing.uc.edu.vek-azozayalarchivospdf/PAPER-Sarmiento.pdf
Tesi di laurea: PROGETTAZIONE E REALIZZAZIONE DI UN SIS-TEMA DI TELEMETRIA GSM PER IL CONTROLLO DELLO STATO DI TRANSITO VEICOLARE E CLIMA (ottenuto il punteggio pi')

Урожай получается только тогда, когда фраза (ottenuto il punteggio più alto) , только когда появляется ù ...

EDIT 3 : Я использовал jquery + ajax для отправки запроса

$.ajax({type: "POST",   url: "handler.php", data: "e_text="+ $('#e_text').val() + "&e_title="+ $('#extra_title').val(),

Ответы [ 6 ]

4 голосов
/ 14 января 2012

Отвечая на ваш обновленный вопрос:

Вы (очевидно) пытаетесь вставить текст в Unicode.И кодировка вашего стола установлена ​​на latin1.Это не сработает.

Измените кодовую таблицу на utf-8.

ALTER TABLE extra_879 CONVERT TO CHARACTER SET utf8;

Подробнее здесь .

2 голосов
/ 04 сентября 2012

Попробуйте изменить varchar(3000) на text (или longtext)

0 голосов
/ 14 января 2012

Уже решить проблему, была проблема JQuery.Вы можете проверить ответ здесь: TinyMCE + Jquery + PHP + AJAX Специальный выпуск символов

0 голосов
/ 14 января 2012

Кажется, нет причин, по которым контент должен быть обрезан. Я попытался выполнить оператор INSERT ниже со специальным символом «ù», и он успешно запустился.

INSERT INTO extra_879 (id,id_user,title,content) VALUES (NULL,'1','Informazione Extra','
Riconoscimenti
Laurea di ingegneria presa a le 22 anni e in il terso posto della promozione
Diploma analista di sistemi ottenuto il rating massimo 20/20, primo posto della promozione.
Borsa di Studio (offerta dal Ministero Esteri Italiano) vinta nel 2010 (Valutazione del territorio attraverso le nueve tecnologie)
Pubblicazione di paper; Stima del RCS della nave CCGS radar sulla base dei risultati di H. Leong e H. Wilson. http://www.ing.uc.edu.vek-azozayalarchivospdf/PAPER-Sarmiento.pdf
Tesi di laurea: PROGETTAZIONE E REALIZZAZIONE DI UN SIS-TEMA DI TELEMETRIA GSM PER IL CONTROLLO DELLO STATO DI TRANSITO VEICOLARE E CLIMA (ottenuto il punteggio più alto')

Какой запрос вы упомянули в EDIT 2? Откуда ты это распечатал? Если этот запрос на самом деле выполняется в бэкэнде, он всегда вставляет обрезанный текст, потому что сам по себе не содержит полный текст - ему не хватает символа «ù» и всего, что следует за ним. Поэтому, если предположить, что это фактический запрос, обрезка, кажется, происходит в другом месте.

Я не уверен, как выполняются почтовые запросы в AJAX, но передаются ли данные в URL? Если да, я предлагаю вам сделать URL-кодирование перед отправкой данных.

0 голосов
/ 14 января 2012

Если запрос обрезается по символу ù, возможно, вам придется заменить этот символ на экранированный эквивалент.

0 голосов
/ 14 января 2012

Попробуйте изменить кодировку таблицы на кодировку, которая поддерживает специальные символы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...