为什么我不能在MySQL数据库中保存长文本?

时间:2012-01-14 14:11:33

标签: mysql sql

我试图在我的数据库中保存一个长文本(大约2500个字符),我的用户使用Web表单输入并使用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 ;

查看字段内容,其中限制为3000个字符,但文本总是以 690个字符进行裁剪。谢谢你的帮助!

编辑:我发现了问题,但我不知道如何解决它。查询总是在同一个char中获取crop,这是一个特殊的char:ù

编辑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 ilpunteggiopiùalto)短语出现时,只有当ù出现时......

编辑3 :我使用jquery + ajax发送查询

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

6 个答案:

答案 0 :(得分:4)

回答您的最新问题:

你(显然)试图插入unicode文本。并且您的表格的字符集设置为latin1。那不会飞。

将表格字符集更改为utf-8。

ALTER TABLE extra_879 CONVERT TO CHARACTER SET utf8;

更多信息here

答案 1 :(得分:2)

尝试将varchar(3000)更改为text(或longtext

答案 2 :(得分:0)

尝试将表格字符集更改为支持特殊字符的字符集...

答案 3 :(得分:0)

如果查询在字符ù处被裁剪,那么您可能必须用它的转义等效字符替换该字符。

答案 4 :(得分:0)

似乎没有理由为什么内容应该被裁剪。我尝试使用特殊的“ù”字符运行下面的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')

您在编辑2中提到的查询是什么?你从哪里打印出来的?如果该查询实际上在后端运行,它将始终插入裁剪文本,因为它本身不包含全文 - 它缺少“ù”字符及其后面的所有内容。因此,假设这是实际查询,裁剪似乎正在其他地方发生。

我不确定如何在AJAX中完成帖子请求,但是在URL中传递了数据?如果是,我建议您在发送数据之前进行URL编码。

答案 5 :(得分:0)

已经解决了问题,是一个jquery问题。您可以在此处查看答案:TinyMCE + Jquery + PHP + AJAX Special chars issue