phpMyAdminを使えば色々なファイルからMySQLへのインポートが簡単にできますが、なぜかうまくいかないコトが多いのでメモっておきます。
今回インポートするファイルは、
[code]
"","ne-zu","1","http://www.php-seed.net/"
"","hoge","1","http://www.php-seed.net/blog/"
[/code]
のように、デリミタを「,」(カンマ)、値を「”」(ダブルクォーテーション)で囲っています。文字コードはUTF-8、改行は何でも構わないでしょう。(今回はCR+LFにしました。)
このファイルを拡張子.csvにして保存します。
まず、phpMyAdminでインポートするテーブルを選び、インポートタブを選択します。CSVにはデータのみですので、予め構造が決まっているものとします。(今回、構造はあまり関係ありませんが、簡単に
id(int),name(varchar(255)),sex(int),url(text)
としました)
テキストファイルの場所に、インポートするファイルを選択し、
- ファイルの文字セットをutf8に。
- インポート済みファイルの書式をLOAD DATAを用いたCSVに。
- フィールド区切り記号を「,」
- フィールド囲み記号を「“」
- ローカルキーワードを使用する、にチェックを入れます。
設定を終えたら、実行ボタンを押してインポートを開始します。
無事インポートされましたでしょうか?
関連する記事:
- さくらインターネットで MySQL のバージョンを 4 から 5 に移行
- Downloading files from Amazon S3
- clearstatcache()のはなし
- ファイルを添付してメールを送信する方法
- PHPでセッションの有効期限だったり、GCだったりの話。
Powered by MightyAdsense

はじめましてこんにちは、まったくの初心者です、
少しお聞きしてもいいでしょうか?
上記の通り実行してみたのですが、
文字のフィールドが空欄のままなんです・・・
同じvarcharでも数字が入っているフィールドは、
ちゃんとインポートできているのですが、
もともとエクセルから作ったcsvファイルなのですが、
文字コードがなにかよくわからないので、
いろいろ変更してみましたが効果なく、
文字化けではなく
文字のところは半角英数字も含めて、まったく空欄なので困っています。
なにかお気づきの点がありましたら、お教えいただけるとありがたいです。
よろしくお願い致します。
hisaさん、こんにちは!
文字化けでなく、文字が消えてしまうというのは不思議ですね。。
CSVファイルの文字コードとインポート時の「ファイルの文字セット」はあっていますか?
数字は出るというのであれば、文字データは「”」(ダブルクォーテーション)で囲む、などの処置をすると上手くいくかもしれません。。
どうでしょうか?
こんにちは、ne-zu様
早々にご回答ありがとうございます。
そもそも元のCVSファイルの文字コードが何なのかよくわからないのです。
CSVファイルの文字コードが何なのかわからないので、
インポート時の「ファイルの文字セット」を3通り?ともやってみたのですが、やはり空欄でした。
自分の持っているCSVファイルの文字コードが何か知る方法はありますか?
cvsファイルはエクセルからファイルの保存時に「カンマ区切りのCVSファイル」を指定したものです。
文字データは”"で区切られていますし、phpMyAdminから直接?
SQL文でひとつ試しに入れてみると、文字がちゃんと入ります。
もっと根本的ななにかが間違っているのかもしれません。
ちなみに別のレンタルサーバー(ろりぽっぷ)ではインポートではなく、
「テーブルにテキストファイルを追加する」という項目からですけど、
普通に移せます。
もう少し悩んでみます、ありがとうございました。
またお気づきのことがありましたら、お教えください。
>hisaさん
文字コードを確認するのはテキストエディタで読み込んでみるのが楽だと思います。
TeraPad
http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html
TeraPadは有名なテキストエディタなのですが、これでCSVファイルを読み込むと、ウィンドウの右下あたりに文字コード、改行コードが表示されると思います。
まあ、何の改行コードだったとしても、
「ファイル」→「文字/改行コード指定保存」でUTF-8として上書き保存、それをphpMyAdminでUTF-8として読ませる、ということを私はよくやっています。
どうでしょうか。
ne-zu様
こんにちは、TeraPadだと簡単に文字コードを知ることができますね!
そして、教えていただきましたとおり、
「UTF-8として上書き保存、それをphpMyAdminでUTF-8として読ませる」
で無事インポートできました。(激しく文字化けしてはいますが・・・)
いろいろ試したつもりでしたが、操作がまずかったようです。
たいへんお世話になりましたありがとうございました。
まだphpで接続できずにエラーになってしまいますが、
またなにかありましたら、よろしくお願い致します。
本当にありがとうございました。
文字化けしてしまうので、
「無事読み込めたようでなによりです」
とは言えないですね(^^;
少しでも前に進むお手伝いが出来たと思うことにいたします。
今後も進捗をぜひお聞かせください!