• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSV形式のテキストデータをSQLへ登録したい)

CSV形式のテキストデータをSQLへ登録したい

このQ&Aのポイント
  • CSV形式のテキストデータを解析してSQLに登録する方法について教えてください。
  • テキストデータの解析がうまくいかず、中途半端にごちゃごちゃしてわからなくなっています。
  • check.phpに表示する確認テーブルの作成方法も教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

CSVをMySQLに入れる方法ですが、二通りあります (1)mysql_query関数でSQL文 INSERT を実行する (2)MySQLのLOAD DATA INFILEコマンドを使ってcsvファイルをインポートする PHPにCSVファイルを読み込んで変数にデータとして保持することに成功したなら (1)をお勧めします。

spinia0120
質問者

お礼

ありがとうございます。 2を検討していましたが1も考えてみることにします。

その他の回答 (3)

回答No.3

改行はtrim関数や str_replace関数で削除することができるので、 explode関数に通す前にそれで改行をとれば良いです それからfgetcsv関数はPHPのなかではあまり良い関数とはいえないので使わないほうがいいでしょう 昔からあまり動作が安定しない関数です 仮にfgetcsv関数のような振る舞いをする処理をしたいとしても多くの人は fgetcsv風の自分なりの関数を自作してから使っているのが実情です

spinia0120
質問者

お礼

>昔からあまり動作が安定しない関数です これは知りませんでした。fgetcsv_regというのが見つかりましたので、これを使ってみます。

回答No.2

> 自分で作るとテキストデータの解析がうまくいかず explode()関数を使えばうまく配列などに格納してくれます 参考URLには似たような例がわかりやすく載っています

参考URL:
http://php.net/manual/ja/function.explode.php
spinia0120
質問者

お礼

mysqlはcsv形式のデータを扱うことができるので、 【テキストデータ】->【解析して確認画面に表として表示】->【送信されたらcsv形式でインポート】 という手順を考えています。 explode関数は改行があると使えないので、fgetcsvで解析を考えました。 が、うまく解析されません(訂正するたびにエラー箇所が変わってきてどこが原因かがわからない) また、csv形式でのインポートにしても、SQLからのエクスポートのやり方はいくつかのっているものの、インポートのやり方は載っていませんでした。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

すみませんが、MySQLで直接CSVをインポートするほうがてっとり早いと思うんですが、なぜわざわざPHPを介してインポートするのでしょうか。 参考URL:データをCSVで入出力する方法 - MySQLの小技 http://tomo.ac/goodstream/database/mysql/linux/tips.htm#%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92CSV%EF%BC%88Excel%EF%BC%89%E3%81%A7%E5%85%A5%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

spinia0120
質問者

お礼

たとえば英単語の学習のように、使用者一人一人がブラウザから使うコンテンツを一括して登録できるようなサービスを考えています。