私のコードでは、変数を使用しています$content
。これは、長さが約200000のテキスト文字列です。
$session
この場合は関係ありません。次のデータを挿入しようとすると、..。
$c = mysql_real_escape_string($content);
mysql_query("
INSERT INTO data (time, session, key_, value_)
VALUES('".time()."', '".$session."', 'content', '".$c."')
");
...新しい行がDBに生成され、、、が書き込まtime
れます。ただし、長さが〜200000の場合、挿入されるテキストは最初の〜1300文字の断片にすぎません。フィールドタイプはに設定され、照合はです。session
key_
value_
$content
longtext
utf8_bin
を選択する$c = strlen(mysql_real_escape_string($content));
と、「200000」についての何かがに書き込まれvalue_
ます。いずれの場合もmysql_errorはありません。
では、なぜ変数の「短い」フラグメントだけが挿入されるのでしょうか。
編集:
この問題を回避するために、を使用base64_encode()
してすべてのデータをエンコードすると、クエリがその役割を果たしました。