phpmyadminでcsvファイルのインポートエラー
以前もこのテーマで躓いた記憶があるが、今日はそれを踏まえたうえで再発見があったのでメモしておく。
よくある方法?で
1.エクセルでインポートしたいデータを作成
2.csv形式で書き出し
3.書き出したcsvファイルをUTF-8(BOM無し)に変換
4.(一度エクセルで開いて文字化けするか確認、文字化けすればok)
5.phpmyadminで「インポート」からファイルを選択、オプションを以下のように設定
6.実行する
今まではこれで成功していたのだが今回は
CSV 入力のフィールド数が不正です (行: 1)
がでてしまった。
(どうでもいいが、純粋にフィールド数を間違っている人より文字コード等でこのエラーを見てる人のほうが多い気がする)
で、今回はgoogle docsからデータを持ってきていたのでその辺が怪しいのかなと思っていたら、ちょっと違っていた。
docsのデータはセル内で改行を行っており、これが原因だった。
csvを開くと所々ダブルクオーテーションで囲んである文字列があり、「なんか変だな」と思って全ての改行コードを消したらうまくインポートできた。
上図でフィールド囲み記号をなくしてるのに、ものによっては囲み記号があるのはおかしいもんね。
で問題はエクセルの改行コードの削除方法。
これはセル内で改行を行ってる部分に対して置換を行う。
検索対象のところは「Ctrl+j」を押す。
何も表示されないが、これで改行コードが入っているのでこのまま置換を実行するとちゃんと置換される。
で置換されたファイルを再度上に書いてある方法を用いてインポートするとうまくいく。
インポートも一筋縄ではいかないな〜。