![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
サーバにある、CSVファイルをデータベース(mysql)に登録したいです。
$query = "LOAD DATA INFILE '[ファイル名]' INTO TABLE [テーブル名] FIELDS TERMINATED BY ','";
を
$result = mysql_query($query);
として実行すると、
Access denied for user 'user'@'%' (using password: YES)
というエラーになります。
色々検索すると、ユーザーはrootユーザーでないといけない・・・というのを見かけたのですが・・・
普通のユーザーではLOAD DATA INFILEを使用できませんか?
私は、レンタルサーバを使用していて、レンタルサーバ上からしかユーザーを追加できません。
この場合、LOAD DATA INFILE~ は使用できないのでしょうか?
また、もし使用できない場合、代替手段はあるのでしょうか?
No.2ベストアンサー
- 回答日時:
> これはどのように作るのでしょうか?
私が作るならこんな感じ。
<?php
$dsn = 'mysql:dbname=mydata;host=localhost';
$user = 'user';
$password = 'password';
if (($fp = fopen("data.csv", "r")) !== FALSE) {
$dbh = new PDO($dsn, $user, $password);
$stmt1 = $dbh->prepare("INSERT INTO mydata (column1,column2,column3) VALUES (:DATA1,:DATA2,:DATA3)");
while (($data = fgetcsv($fp)) !== FALSE) {
$stmt1->bindValue(':DATA1', $data[0]);
$stmt1->bindValue(':DATA2', $data[1]);
$stmt1->bindValue(':DATA3', $data[2]);
$stmt1->execute();
}
fclose($fp);
unset($dbh);
}
?>
PHPのいいところは公式サイトのリファレンスが充実していることです。
頑張って意味は調べてみてください。
http://www.php.net/manual/ja/function.fopen.php
http://www.php.net/manual/ja/function.fgetcsv.php
http://www.php.net/manual/ja/book.pdo.php
コードまで書いて頂きありがとうございました。
頂いたコードを流用して無事にアップロードすることが出来ました。
PDOというのは初めて知りましたが、今後も勉強して使っていきたいと思います。
また、参考サイトも大変ためになりました。
一点わからないのですが、$stmt1 というのは何かの略なんでしょうか?
No.3
- 回答日時:
> 一点わからないのですが、$stmt1 というのは何かの略なんでしょうか?
PDOStatementのインスタンスを入れているので、ステートメントの1個目という意味で使ってます。
複数のSQL文を同じループの中で使う時1個目、2個目と定義しておいて使い分ける事があるので、私はそんな感じで変数名を付けてます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでXMLを扱いたいのですが
-
自動で番号を振りたい
-
行数が30万件ほどあるCSVから、...
-
テキストに格納しているデータ...
-
パターンを取得する。
-
$_SESSIONに二次元配列を使える...
-
Ruby 2次元のハッシュ
-
PHP、{}記号の意味
-
file_existsでファイル名の部分...
-
MYSQLとPHPによって取得する多...
-
2次元配列の値の受け渡しについ...
-
正規表現でパターンマッチした...
-
array_intersectで空欄を比較し...
-
PHPで連想配列のプルダウンメニ...
-
【PHP】 重複した値を取り除く...
-
重複確認
-
思うような連想配列ができない・・
-
Mysqlとphpでソートや更新時の...
-
連想配列で値が空だったら、要...
-
配列の添え字が小数だとどうなる?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
Resource id #3 と表示されま...
-
stdClass Objectを連想配列のよ...
-
CSVデータの行数カウントをした...
-
ヒアドキュメントの中のfor文
-
複数行のデータのPOST処理に関して
-
While文を使って配列の中身を全...
-
C言語でCSVファイルの行数を読...
-
行数が30万件ほどあるCSVから、...
-
csvの内容を行単位で削除したい
-
CSVファイルの最終行のデー...
-
バイナリファイルの内容を、そ...
-
PHPで、CSVファイルを、指定し...
-
doxygenを使用する環境について
-
FortranのOPEN文
-
csvファイルを読み込み→上書き...
-
PHPでCSVの一部の行を編集したい
-
ラジオボタンのチェックの付け方。
-
Ethnaでのsection使用法
-
CSVデータを正規表現で抜き出せ...
おすすめ情報