質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1666閲覧

PHPを使ってMySQLへCSVを取り込みたい

Yt6623

総合スコア4

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/05/04 07:13

昨日は様々な方にご助言頂きありがとうございました。
昨日の方法は断念し、新しいコードを作成しております。

下記コードですが、動かしてもデータベースに新しいデータは挿入されていないため、どこかでエラーが起き正しく動いていないのだと思われます。
$dbh = dbConnect();以下のtry/catch文がうまく作動しているかのデバックを行いたいのですが、なにか良い方法はありますでしょうか。

また、コードを見ただけでどこが悪いかわかる方いらっしゃいましたら、ご教示頂きたいです。

宜しくお願い致します。

PHP

1<?php 2 3function dbConnect() { 4 $dsn = 'mysql:host=localhost;dbname=----;charset=utf8'; 5 $user = '----'; 6 $pass = '----'; 7 8 try { 9 $dbh = new PDO($dsn,$user,$pass,[ 10 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 11 ]); 12 echo '接続成功'; 13 14 } catch(PDOException $e) { 15 echo '接続失敗'. $e->getMessage(); 16 exit(); 17 }; 18 19 return $dbh; 20} 21 22$dbh = dbConnect(); 23 24try { 25 $stmt2 = $dbh->prepare('load data local infile "/Applications/MAMP/htdocs/signupdata.csv" into table users fields terminated by ',''); 26 $stmt2->execute(); 27 echo '更新しました'; 28} catch(PDOException $e){ 29 echo '更新失敗'. $e->getMessage(); 30 exit(); 31}; 32 33?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

下記コードを接続処理の部分へ証入することにより解決いたしました。
皆様、ご協力頂きありがとうございました。

PDO::MYSQL_ATTR_LOCAL_INFILE => true,

投稿2021/05/04 08:28

Yt6623

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

php

1// $stmt2 = $dbh->prepare('load data local infile "/Applications/MAMP/htdocs/signupdata.csv" into table users fields terminated by ',''); 2 $stmt2 = $dbh->prepare('load data local infile "/Applications/MAMP/htdocs/signupdata.csv" into table users fields terminated by ' . "','");

投稿2021/05/04 07:34

Y.H.

総合スコア7918

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yt6623

2021/05/04 07:56

ありがとうございます 以下のエラーが出ました。 General error: 2000 LOAD DATA LOCAL INFILE is forbidden, check mysqli.allow_local_infile
Y.H.

2021/05/04 08:00

'更新失敗'は出力されてないのでしょうか? 出力されていれば、この質問の「try/catch文がうまく作動しているかのデバックを行いたい」について きちんとExceptionをcatchしていると思うのですが。
Y.H.

2021/05/04 08:09 編集

> また、コードを見ただけで・・・ 本題ではないこの↑部分について 出力されているエラーに関してはちょっと検索するだけで情報がいっぱい出るので、少しはご自身で解決する努力をしましょう。 https://www.google.com/search?q=check+mysqli.allow_local_infile
Yt6623

2021/05/05 07:30

Y.Hさん わざわざありがとうございました。 エラーメッセージで検索した結果、解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問