My Life

映画、音楽、プログラミングTipsのブログ

プログラミング

【PHP】CSVファイルからINSERT文を生成する

投稿日:6月 16, 2018 更新日:

こんにちは。tomoです。

仕事でGoogleスプレッドシートデータをDBに登録しなければいけない事があり、
スプレッドシート情報をCSV形式に変換したデータからINSERT文を生成するプログラムを作りました。

①GoogleスプレッドシートデータをCSV形式に変換
②PHPを使い、CSVファイルからINSERT文のSQLファイルを生成 ←この部分
③上記SQLをDBに流し込む

行った事

作成したロジック

実行結果

CSVファイルを用意します

PHPファイルを実行します

SQLファイルができました

工夫した点

  1. テーブル情報は、複数テーブル分を一気に処理できるよう配列構造にしました。
  2. 値が設定されていない項目は、何もしないとブランク(“”)で登録されてしまうため、NULLで登録されるようにしました。
  3. CSVデータの改行コードやタブは除去するようにしました。

課題

  1. バルクインサートの方が大量データにも対応できて使い勝手が良くなりそう。
  2. テーブル名やカラム名は手動で記載するのではなく、CSVファイル名とCSVファイル1行目から其々取得するようにすれば、使う時にソースを修正する手間が省けそう。

まとめ

この記事を書いている最中、ググってみたら既にこんなものが公開されていました。

CSV→INSERT文変換

というか、そもそもCSVデータを直接DBに登録できるみたいでした。

あぁ何だったんだろうあの時間。。

結論

作る前にググろう!!

エンジニアによるエンジニアのためのサイト始まる!!【teratail】


-プログラミング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

関連記事

[PHP]解説!Mustache【BLOCKS pragma】の使い方

PHP用Mustacheの拡張機能 BLOCKS pragmaについてまとめます。 目次1 Mustacheとは(簡単に)1.1 メリット1.2 デメリット2 BLOCKS pragmaで何が出来るの …

[PHP]解説!Mustache【FILTERS pragma】の使い方

PHP用Mustacheの拡張機能 FILTERS pragma についてまとめます。 目次1 FILTERS pragmaで何が出来るのか?2 使い方3 注意4 FILTERS pragmaとLam …

テキストファイル画像1

【PowerShell】WinMergeで複数ファイルをコマンドラインから比較する

ファイルの差分を見たい時、WinMergeは便利なツールです。 マウス操作でも問題ありませんが、数十件、数百件という大量ファイルの差分チェックは、スクリプトにお任せしましょう。 目次1 やること2 用 …

ファイル画像

【PHP】大量のファイル名を一括リネームする

仕事で大量ファイルをリネームしなければいけない時がありました。その際の行った事をメモ程度に記載します。 目次1 ロジック2 まとめ ロジック [crayon-5df60917f3bd021989619 …

[PHP]解説!Mustache【ANCHORED DOT pragma】の使い方

PHP用Mustacheの拡張機能 ANCHORED DOT pragma についてまとめます。 目次1 ANCHORED DOT pragmaで何が出来るのか?2 使い方3 使い方【応用編】4 注意 …