私のコードでは、変数を使用しています$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文字の断片にすぎません。フィールドタイプはに設定され、照合はです。sessionkey_value_$contentlongtextutf8_bin
を選択する$c = strlen(mysql_real_escape_string($content));と、「200000」についての何かがに書き込まれvalue_ます。いずれの場合もmysql_errorはありません。
では、なぜ変数の「短い」フラグメントだけが挿入されるのでしょうか。
編集:
この問題を回避するために、を使用base64_encode()してすべてのデータをエンコードすると、クエリがその役割を果たしました。