No.502


【MySQL】error 1366 Incorrect string value

ほぼ100%、違う文字コードを書き込んでると思う

 MySQLのデーターベースに文字列を書き込んだとき(insert, update)に下記のエラーが出ることがある。

1366 Incorrect string value

 そんなときは、ほぼ確実にデーターベース(カラム)の文字コード以外の文字を書き込もうとしているはずだ。

 よく見かけるのが utf8 もしくは utf8mb3 に対して絵文字などの utf8mb4 のデーターを書き込んでいるケース。
 古い時代に定義したものをdumpして新環境に取り込んで…というオペレーションでよく発覚する。というかもう見飽きたわ(笑

 まあ、下記のページを参考にして、文字コードやCOLLATEなどを修正してあげればOK。

【MySQL】文字コードとCOLLATEの変更