ユーザーがファイルをアップロードするサイトがあり、それらをさまざまな配列に解析してから、MySQL データベースに保存します。問題は、一部の特殊文字 (たとえば ø やフランス語の他の文字など) が原因で、シリアル化された配列が全体として格納されないことです。
たとえば、配列が の場合、データベースに入りAAAAAAAAAAAAAøbbbbbbbbbbbbbccccccccccc
ますAAAAAAAAAAAAA
。残りは失われます。シリアル化された配列をアップロードする前に、mysql_real_escape_string
それを行います。マジック クォートはオフで、文字列Longtext
は.utf8_unicode_ci
utf8_unicode_ci collation
文字列をインポートするコードは次のとおりです。
mysql_query(" INSERT INTO logs(uploaderid,date,randomstring,array1,array2,
array3,array4)
VALUES(
'".$_SESSION['id']."',
NOW(),
'".mysql_real_escape_string($stringvalue)."',
'".mysql_real_escape_string(serialize($array1))."',
'".mysql_real_escape_string(serialize($array2))."',
'".mysql_real_escape_string(serialize($array3))."',
'".mysql_real_escape_string(serialize($array4))."'
)");
私は何を間違っていますか?