非常に長いテキスト文字列を MySQL Blob 列に挿入しようとしていますが、MySQL は 64kB のデータしか保存していません。文字列の長さは 75360 文字です。私はPHPのmysql_connect()
.
何か案は?
それがBlobかTextかで違いはありますか?私はもともとそれをテキストとして持っていましたが、影響を与えずに変更しました。
これは BLOB 列の最大サイズだからです。MEDIUMBLOB/LONGBLOB または MEDIUMTEXT/LONGTEXT を使用する必要があります。
MySQLのBLOB
タイプは、最大 65,534 バイトを格納できます。これを超えるデータを格納しようとすると、MySQL はデータを切り捨てます。 MEDIUMBLOB
最大 16,777,213 バイト、LONGBLOB
最大 4,294,967,292 バイトを格納できます。
厳密な SQL モード ( MySQL モード) を有効にすると、列の型に収まらないデータを格納しようとするとエラーが発生します。
また、BLOB と TEXT BLOBS がバイナリ データ用であることに違いがあるかどうかも尋ねました。BLOB フィールドに対して LIKE クエリを実行すると、大文字と小文字が区別されます。
すなわち
SELECT 'TEXT' LIKE 'TEXT';
=> 1 for both BLOB and TEXT
SELECT 'TEXT' LIKE 'text';
=> 1 for TEXT
=> 0 for BLOB
ドキュメントによると、ブロブ列はわずか64Kbです
代わりに mediumblob 列タイプを試してください...