0

私のコードでは、変数を使用しています$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()してすべてのデータをエンコードすると、クエリがその役割を果たしました。

4

2 に答える 2

0

フィールド タイプを に設定してみてくださいTEXT

于 2012-06-12T10:24:52.847 に答える
0

データベース内のフィールドのタイプを確認してください。使用しているタイプは何ですか?

于 2012-06-12T10:22:54.873 に答える