日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP 5 » CSVインポート

CSVインポート

ページ: 1

投稿者 投稿
会員
登録者: 1 2009
返信数: 7
PHPを勉強し始めた初心者ですが、
今、4000行ほどあるCSVファイルをどうにか、Postgresqlにインポートしたく、
コーディングしているのですが、うまくいきません。
インポートする際には、重複チェックも行いたいのです。

流れとしては、
1、CSVファイルをfgetcsv関数で開く
2、配列に読み込んだ行を一つづつ収める
3、DBのデータとCSVのデータをマッチング
4、問題なければ、CSVデータが格納されている配列をインサート

と考えてはいるのですが、実際どのように、
配列にCSVデータを格納するのか?
DBとのデータをマッチングさせるか?
で迷っています。

助言などいただければと思います。
よろしくお願いいたしますm( __ __ )m
会員
登録者: 5 月 2009
返信数: 4
住居: Tokyo
以下、参考になれば幸いです。

引用
1、CSVファイルをfgetcsv関数で開く
2、配列に読み込んだ行を一つづつ収める
3、DBのデータとCSVのデータをマッチング
4、問題なければ、CSVデータが格納されている配列をインサート

大まかな流れは、仰る通りで問題無いと思います。
助言としては、これにトランザクション処理を組み込めば尚良しかと思います。

これらを踏まえて文章で回答するなら…
posgreの接続を確立し、fgetcsvをwhile文などでループしながら
行毎にバリデーションを行い正常であればINSERT文を実行する。
異常パターンが発生した場合はロールバックで中断。

また、個人的にDB接続に関してはposgre関数だと貧弱なのでPDO/PEARDBを使った方が
お勧めです。

こんな回答で如何でしょうか?
会員
登録者: 1 2009
返信数: 7
ご回答ありがとうございます。

どうも自己勉強していると周りの常識と言うか
定石を知りたくて実際のソースの質問より、
ロジックの考え方にまず疑問を持ってしまって、
抽象的な質問になってしまい、すみません。

大まかな考えかたが合っていて良かったです。

DBの接続方法もいろいろあるのですね。
PDOで接続すると速度が速くなるような記事があったので、
ちょっと検証してみようと思います。

貴重な情報ありがとうございました! :P

ページ: 1

日本PHPユーザ会 掲示板 » PHP 5 » CSVインポート

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています