EXCELで作成したデータをmySQLに取り込もうと、csv形式で保存しました。

保存した後はメモ帳で開いて、文字コードをutf-8に変更して再度保存しました。

一方XAMPPでインストールしたphpMYadminでstudyデータベースを新規に作成しました。
test1テーブルを作成して、id(INT)、url(TEXT)、title(TEXT)、category(TEXT)、hatena(TEXT)、point(TEXT)、since(DATE)、latest(DATE)を入力しました。

インポート->インポートするファイルの形式をCSV、テキストファイルの位置で該当するcsvを参照して、文字セットをutf-8に設定しました。
この状況でアップロードしたところ、CSV 入力のフィールド数が不正です (行: 1)と表示されました。

自分でもいろいろ原因を考えてみましたが、解決方法がわかりませんでした。
このエラーを回避し、データをインポートする方法を教えてください。よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2011/01/24 21:10:33
  • 終了:2011/01/27 12:31:34

ベストアンサー

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/01/24 21:40:23

ポイント70pt

メモ帳でのUTF-8変換はBOMと呼ばれるコードを自動的に埋め込んでしまったりするため正しくインポートできません

他のエディタを用いてUTF-8に変換するか、もしくは(データベースやphpMyAdminの文字コードにもよりますが)Excelで作成したCSVをそのまま手を加えることなくphpMyAdminでインポートさせるほうが良いでしょう

 

http://ja.wikipedia.org/wiki/UTF-8

id:holoholobird

ご回答、ありがとうございます。

xlsxファイルを開き、再度csvで保存し直しました。

秀丸エディタで再度開き、unicode(utf-8)でエンコードしてから開き、保存しました。

これをphpMyAdminでutf-8、csvでアップロードしたところ、やはり「CSV 入力のフィールド数が不正です (行: 1)」との表示が出ます。

手を加えることなくインポートする場合には、csvの文字コード(ANSIになっています)をphpMyAdminに合わせる必要があると思うのですが、この選択肢が「ファイルの文字セット」に見当たりません。

よろしければ引き続き、教えていただけると助かります。

なお、現在インポートしようとしているのは前回windofjulyさんに教えていただいたファイルです。

テキストがPHPとmySQLを組み合わせて練習するところに入ってきたので、その練習に使おうと思いました。

2011/01/25 17:28:03

その他の回答(1件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/01/24 21:40:23ここでベストアンサー

ポイント70pt

メモ帳でのUTF-8変換はBOMと呼ばれるコードを自動的に埋め込んでしまったりするため正しくインポートできません

他のエディタを用いてUTF-8に変換するか、もしくは(データベースやphpMyAdminの文字コードにもよりますが)Excelで作成したCSVをそのまま手を加えることなくphpMyAdminでインポートさせるほうが良いでしょう

 

http://ja.wikipedia.org/wiki/UTF-8

id:holoholobird

ご回答、ありがとうございます。

xlsxファイルを開き、再度csvで保存し直しました。

秀丸エディタで再度開き、unicode(utf-8)でエンコードしてから開き、保存しました。

これをphpMyAdminでutf-8、csvでアップロードしたところ、やはり「CSV 入力のフィールド数が不正です (行: 1)」との表示が出ます。

手を加えることなくインポートする場合には、csvの文字コード(ANSIになっています)をphpMyAdminに合わせる必要があると思うのですが、この選択肢が「ファイルの文字セット」に見当たりません。

よろしければ引き続き、教えていただけると助かります。

なお、現在インポートしようとしているのは前回windofjulyさんに教えていただいたファイルです。

テキストがPHPとmySQLを組み合わせて練習するところに入ってきたので、その練習に使おうと思いました。

2011/01/25 17:28:03
id:deflation No.2

deflation回答回数1036ベストアンサー獲得回数1262011/01/24 22:27:29

ご利用のパソコンのメーカー名、機種名が分からないので何とも言えませんが、まず、Windows7にアップグレードする前に、Microsoftの「Windows 7 Upgrade Advisor」を使い、アップグレード可能なスペックがあるかどうか調べてみましょう。


可能だという判定が出たとしても、次のデバイスのWindows7用のものは必須です。

  • チップセット
  • グラフィック(これは用意できているのですね)
  • ネットワーク
  • サウンド
id:holoholobird

解答ミスですか?

引き続き継続します。

2011/01/26 15:42:50
  • id:holoholobird
    大変失礼しました。コメントを受け付けない設定になっていました。
    昨日から少し行ったこともあるので、その部分も加えて一度、書きなおさせていただきます。

    windofjulyさんから指摘を受けたので、一度、質問時点で作成していたcsvファイルは破棄しました。
    csvファイルを作成した元となったxlsxファイルを開き、再度csv形式で保存しました。
    このcsvファイルを秀丸エディタで開いたところ、SHIFT-JIS形式の文字コードになっていましたので、秀丸エディタで「名前を付けて保存」→「文字コード:unicode(utf-8)」で、別のフォルダに保存を実行しました。
    この時点で、文字コードがutf-8とSHIFT-JISの2種類のcsvファイルがあります。

    phpMyAdminを開き、データベース、テーブルと開き、インポートをクリックしました。
    アップロードファイルを秀丸エディタで保存したurf-8を文字コードとするcsvファイルを選んだところ、自動でcsvにチェックが入りました。
    文字コードをutf-8にセットして、アップロードを実行したら、やはり「CSV 入力のフィールド数が不正です (行: 1)」との表示が出ました。
    秀丸エディタで開く前の文字コードがSHIFT-JISのcsvファイルを選んだところ、自動でcsvファイルにチェックが入りました。
    文字コードをSHIFT-JISにセットして、アップロードを実行したら、やはり「CSV 入力のフィールド数が不正です (行: 1)」との表示が出ました。

    よろしければ引き続き、教えていただけると助かります。
    なお、現在インポートしようとしているのは前回windofjulyさんに教えていただいたファイルです。
    テキストがPHPとmySQLを組み合わせて練習するところに入ってきたので、その練習に使おうと思いました。
  • id:windofjuly
    うぃんど 2011/01/26 20:32:55
    >自動でcsvにチェックが入りました

    次のようにしてみてください 
    ・秀丸でBOM無しのUTF-8に変換する際には改行コードをCRLF(\r\n)ではなくLF(\n)にしておきます
    ・「LOAD DATAするCSV」にチェックを入れて下記のようにします
    区切り記号 ,
    囲み記号 Nullもしくは空白
    エスケープ記号 \
    終端記号 \n
    カラム名 Nullもしくは空白
    ・xamppが動いているPCと、CSVを保持しているPCが、同一の場合は「LOCAL キーワードを使用する」にもチェックを入れます
  • id:holoholobird
    おお、できました!!
    ありがとうございます。本当に感謝です。

    またなにかあった際には、よろしくお願いします。

この質問への反応(ブックマークコメント)

トラックバック

  • 人力検索へのフォロー? id:holoholobird さんの http://q.hatena.ne.jp/1295871030 について   日を置いて考え直して見たのだけれど、質問時点では「文字セットをutf-8に設定しました」とあるのに、返
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません