• 締切済み

MYSQLのcsvインポートについての質問です。

MYSQLのcsvインポートについての質問です。 myadminからEXCELのcsvのインポート作業を行っております。 日本語等は、sift-jisに変換して正常に表示されます。 しかし、電話番号が表示されません。 インポートは正常に行われていると思います。(インポートの際に表示されるコメントで確認) ページの遷移の際には一瞬データが見えます。 また、SQLでデータ追加を行った場合には正常に表示されます。 電話番号のデータは123-123-1234です。 フィールドはvarchar(16)です。 どなたか、お分かりになる方よろしくお願いいたします。

  • MySQL
  • 回答数1
  • ありがとう数2

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

CSVのデータは"123-123-1234"などのようにクォーテーションで くくってありますか?

関連するQ&A

  • CSVファイルをMYSQLにインポート

    先日からMYSQL+PHPの勉強をはじめました。 データベース構築の際、以前作成したCSVファイルをMYSQLのテーブルとして 利用したいと考えております。 そこで、MYSQLコマンドより、 LOAD DATA LOCAL INFILE 'ファイル名.csv' INTO TABLE テーブル名 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; Query OK, 0 rows affected (0.04 sec) Records: 102 Deleted: 0 Skipped: 102 Warnings: 0 とCSVファイル自体が悪いのかSQL文に問題がるのかインポートがうまくいきません。。 ちなみにCSVは  0,2011/6/2 0:00,80.94,81.32,80.55,80.92 0,2011/5/25 0:00,81.94,82.17,81.8,81.95 0,2011/5/23 0:00,81.77,82.04,81.32,81.99 環境はphpdevで一括でインストールした phpadmin: バージョン2.3.2 MYSQL: MySQL4 apache: 1.3.27 初心者で基本的な質問かもしれないですがどうかご教授お願いします。

    • ベストアンサー
    • MySQL
  • mysqlにcsvを importしたい。

    初心者です。 http://www.phpkode.com/scripts/item/quick-csv-import/ のQuick CSV import 1.0にて mysqlにcsvをインポートしようとしてもヘッドの題名しかインポートされません。 データーがインポートされないのです。 Access denied for user '*****'@'****' (using password: YES) というエラーが出ます。(*)はdatabasenameと(@'****' (この意味は分かりません))です。 いろいろいじってるのですが、状況は変わりません。 phpmyadminから見ると ヘッドの部分(1行めの題名)はインポートできているので このエラー文のせいかどうかもわかりません。 データー、題名ともすべて半角英数です。 実際にこのフリーソフトのことではなくても、 症状に対するヒントだけでも頂きたいと思っています。 どうかよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MYSQLでCSVインポートが一行目しかされません

    phpMyAdminで空のテーブルにCSVファイルをインポートをしているのですが、なぜか一行目だけしかインポートされずに困っています。 フィールド数は合っているのですが、なにか思い当たる原因があれば教えていただけますでしょうか。 こちらはチェックしていて、テキストエディタで開いてカンマの位置や数も合っているはずなのですが。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1132222936 ちなみにデータは、 フィールド名 a(varchar(20)),b(float(6,4)) に対して 値 1,1.34 2,1.21 3,1.25 のような単純なデータです。 すでにテーブルとフィールドは作ってあり、CSVデータは 1,1.34 2,1.21 3,1.25 というデータのみです。 何度やっても、「1,1.34」の一行目だけしかインポートされません。

    • ベストアンサー
    • MySQL
  • MySQLデータベースにcsvファイルインポートで、エラー

    csvファイルインポートで、エラー phpMyAdminからMySQLデータベースに、csvファイルのインポートを試みたところ、 「CSV 入力のフィールド数が不正です(行: 17)」と表示され、うまくいきません。 データベースの中を確認すると、60レコードのうち、15レコードまでは正常にインポートされています。 元のcsvファイルを確認しても、mysql側とフィールド数は一致しており、問題はないように見受けられました。 phpMyadminのバージョンが、2.6.1-pl3から 2.10.0.2に変わった後、上記の問題が発生するようになりました。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • csvファイルをMySQLにインポートしたい

    phpでcsvファイルをフォルダにアップロードし、これをMySQLにインポートするプログラムを作成しています。 以下のソースを実行したところエラーが発生しました。 -----food.csv---------------------------------------------------------------------- "No","name","price" "1","うどん","100" "2","ぱすた","500" "3","カレー","300" ---------------------------------------------------------------------------------- -----BaseDAO.php------------------------------------------------------------------ <?php class BaseDAO{ function connect(){ try { $dsn = "mysql:host=localhost;dbname=food"; $option = array( // エラーモードを例外スローに設定 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // local ファイルからload可能にする PDO::MYSQL_ATTR_LOCAL_INFILE => true ); $user = 'username'; $password = 'password'; $pdo = new PDO($dsn, $user, $password, $option); $pdo->exec("SET NAMES utf8"); return $pdo; //var_dump($pdo); } catch (PDOException $ex) { print($ex->getMessage()); die("データベース接続に失敗しました"); } return null; } function disconnect($dao){ $dao = null; } } ?> ---------------------------------------------------------------------------------- ------uploadcsv.php----------------------------------------------------------------- <?php require_once 'BaseDAO.php'; //csvファイルのアップロード if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { //「files」という名前のフォルダを同じ階層に設置。ここにCSVファイルをアップロード if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0644); //fileパス $file = "files/" .$_FILES["upfile"]["name"]; $sql_src = <<<SQL LOAD DATA LOCAL INFILE %s INTO TABLE `%s` CHARACTER SET sjis fields terminated by ',' enclosed by '"' lines terminated by '\\r\\n' IGNORE 1 LINES SQL; $table= 'food'; //テーブル名 $inport=new BaseDAO(); //インスタンス作成 $pdo=$inport->connect(); //pdoクラスに接続 $sql = sprintf($sql_src , $pdo->quote($file), $table); //sql文の実行 $stmt = $pdo->query($sql); echo "インポートが完了しました!"; //失敗したとき } else { echo "ファイルをアップロードできません。"; } } else { echo "ファイルが選択されていません。"; } ?> -----index.html--------------------------------------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <form action="uploadcsv.php" method="POST" enctype="multipart/form-data"> ファイル:<br> <input type="file" name="upfile" size="30"><br> <br> <input type="submit" value="アップロード"> </form> </body> </html> ---------------------------------------------------------------------------------- --------foodテーブルを作成するSQL文------------------------------------------------ CREATE TABLE IF NOT EXISTS `food` ( `No` int(11) NOT NULL, `name` varchar(50) NOT NULL, `price` varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ---------------------------------------------------------------------------------- 実行したところ以下のエラーが発生しました。 Warning: PDO::query() [pdo.query]: LOAD DATA LOCAL INFILE forbidden in C:\xampp\htdocs\food\uploadcsv.php on line 30 <当方のPC環境> phpMyAdmin:3.3.9 PHP: 5.3.5 Apache 2.2.17 MySQL 5.5.8 XAMPP version 1.7.4 フォルダ(files)にcsvファイルがアップロードされているところまでは確認できましたが、MySQLにインポートされていないようです。 BaseDAO.php内の「PDO::MYSQL_ATTR_LOCAL_INFILE => true」が効いていないように思えます。 初歩的な質問で凝縮ですが、原因を教えていただきたく存じます。

    • ベストアンサー
    • PHP
  • mysqlでCSVインポートでトランザクション管理出来る

    只今、mysqlを使用して開発しております。 行き詰まっておりまして 大変申し訳ありませんが、ご教授の程、よろしくお願いいたします。 要件は以下になります。 ・CSVファイルデータをインポートする。 ・CSVファイルは複数なので、全ての処理が終わった段階でコミット・もしくはロールバックする。 (トランザクション管理が出来ればよいです。) ※LOAD DATA INFILEでトランザクション管理しようとしたのですが LAODのトランザクション管理は5.1系じゃないと出来ないようですので、 出来ませんでした。 mysqlのバージョン :5.0.24

    • ベストアンサー
    • MySQL
  • SQL ServerにCSVをインポート

    SQL Server Express 2012にCSVファイルのデータをインポートさせたいと思っています。 SQL Server のデータのうち、主キーはdate型、その他はbit型、nvarchar型です。 SQL Serverのテーブルのデータには、#2013-01-01#, #False#, "あいう"などというデータがあります。 CSVは、Event.csvというデータです。 インポートするにあたって、BULK INSERTを利用しようとしています。 上記のデータで下記のコードをSQL Server Managemant Studio Expressで実行するとエラーとなります。 FROM 'D:\Business\Data\Event.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ); データを別の文字列にするべきなのか、#で日付やブール値を囲わない方がよいのか、あるいはカラム名の入ったCSVを用意するべきなのかなど、疑問が多いのですが、実際はどうあるべきなのでしょうか。 なお、上記のデータはもともとExcel のデータをVBAを使ってCSVファイルに出力したものなので、CSVの形式を別の状態のデータに変換することはできます。 もともとの目的は、ExcelのデータをSQL Serverのデータにインポートしたいだけです。 よろしくお願い致します。

  • MySQLにCSVファイルを入れる方法

    MySQLでデータベースを構築しています。CSVファイルにデータを構築していますがMySQLにインポートする方法が解りません。どうかおしえていただけませんでしょうか?

  • mysqlのデータインポートについて

    こんばんは。 エクセルで作ったcsvファイルをmysqlにインポートしたいのですが、 エラーが出て出来ずに困っています。 エラーの内容は、Row 1 doesn't contain data for all columsと出ています。 データが無いという事なのですが、csvファイルにはデータがあります。 mysqlのフィールドの属性の問題でしょうか? 考えられる原因など教えて頂けますと大変助かります。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • PHPでMySQLのデータのインポート&SELECT結果のダウンロード

    こんにちは。いつもここにはお世話になっています。 ご質問が何点かあって申し訳ないのですが、簡単に作ろうとしているスクリプトを説明すると一日一回夜中にCSVかTEXT形式でデータがアップされます。それをMysqlの指定したテーブルにインポートします。その際前日のデータは全て削除します。作られたCSVファイルも削除したいんです。翌日にそのインポートされたデータを検索し必要に応じて検索されたデータをダウンロードできるようにしたいんです。ダウンロードするファイルはCSVでファイル名はテーブル名に検索した時の時間をつけた名前。これを全てPHPで行いたいんです・・・。 現在検索とSSHでログインしてのMysqlにインポートはできました。ダウンロードはまだ挑戦していないのですが、まずファイルを作ることとPHPでのデータのインポートができるのかわかりません。 質問なのですが、 1.分かりにくいのですが、上記のようなことはPHPで可能でしょうか? 2.データのインポートはPHPではどのようにしたらいいのでしょうか? 3.テーブル内のデータの削除はDELETEを使えば可能なのはわかりましたが、指定したフォルダ内のファイルを削除する方法はありますか? 4.SELECTで検索したデータが画面に表示されダウンロードできるようにファイルを作るのに $sql = "SELECT * FROM テーブル名 WHERE フィールド = \"条件\" "; $sql .= "INTO OUTFILE \"/home/パス/テキスト.CSV(or txt)\""; $res = mysql_query($sql); とスクリプトを記述しましたが出来ませんでした。 SShでmysqlにログインをして mysql> SELECT * FROM テーブル名 WHERE フィールド = '条件' -> INTO OUTFILE '/home/パス/テキスト名.txt'; とするとできたのですが、単純にこれをSELECT等と同じようにしたらダメなのでしょうか? 質問が多く申し訳ないのですが、ご教授をよろしくお願いします。

    • ベストアンサー
    • PHP