Почему в моем столбце данных MySQL сохраняется только 64 КБ данных? - PullRequest
12 голосов
/ 03 января 2009

Я пытаюсь вставить очень длинную текстовую строку в столбец MySQL Blob, но MySQL сохраняет только 64 КБ данных. Строка длиной 75360 символов. Я соединяюсь с PHP mysql_connect().

Есть идеи?

Имеет ли значение, если это Blob или Text. Первоначально я имел это как текст, но изменил его без последствий.

Ответы [ 4 ]

30 голосов
/ 03 января 2009

Поскольку это максимальный размер столбца BLOB. Вам необходимо использовать MEDIUMBLOB / LONGBLOB или MEDIUMTEXT / LONGTEXT.

6 голосов
/ 03 января 2009

Тип BLOB в MySQL может хранить до 65 534 байтов, если вы попытаетесь сохранить больше данных, MySQL будет их обрезать. MEDIUMBLOB может хранить до 16 777 213 байт, а LONGBLOB может хранить до 4 294 967 292 байт.

Если вы включите режим строгого SQL ( Режимы MySQL ), вы получите сообщение об ошибке при попытке сохранить данные, которые не соответствуют типу столбца.

2 голосов
/ 04 января 2009

Вы также спросили, есть ли разница между BLOB и TEXT
BLOBS для двоичных данных. Если вы выполняете запрос LIKE в поле BLOB, он будет чувствителен к регистру.

т.е.

SELECT 'TEXT' LIKE 'TEXT';
=> 1 for both BLOB and TEXT

SELECT 'TEXT' LIKE 'text';
=> 1 for TEXT
=> 0 for BLOB
0 голосов
/ 03 января 2009

Столбец BLOB-объекта составляет всего 64 КБ на документацию

Попробуйте вместо этого использовать тип столбца mediumblob ...

...