私はTEXT
カラムを使用しています。これは、mysqlでut8_unicode_ci
という名前のカラムを使用しています。mysqlの列の長さが長く、utf8_unicode_ci - PHPを使用してその限界を超えないようにしていますか?
収集されるテキストは、さまざまな言語のさまざまなサイトからのものです。
TEXT
の列の最大長が65535
バイトで混乱しています。
カラムに挿入する文字列がその制限を超えていないことを確認するにはどうすればよいですか?
私はstrlen($str)
を使用して文字列の長さを確認していますが、これを使用して、理解できるようにデータが列に収まるように切り捨てられないことを確認します。utf8_unicode_ci
は1バイト文字ごとに?
mb_strlen()を使ってみましたか? http://php.net/manual/es/function.mb-strlen.php –
はい、 'mb_strlen($ str)!= strlen($ str)'のすべての場合、 'strlen'の実際の結果は次のとおりです。 'mb_strlen'からの結果と' mb_strlen'からの結果はマルチバイト文字を1としてカウントします – hadley
これは解決策ではありませんが、スペースを使い果たしている場合はMEDIUMTEXT(16777215 chars)またはLONGTEXT(4294967295 chars)ちょうどテキスト。 – AleksanderKseniya