php+mySQLにおける、Load data Infile
Posted: 2018年3月30日(金) 01:16
こんばんは。C言語ではなくPhp+MySQLなのですが、質問させていただきます。
PCはmacです。
現在、csvファイルからLOAD DATA INFILE関数を用いてテーブルにデータをインポートするphpプログラムを考えています。
csvファイルは、member_list.csvで、絶対パスは
/Applications/MAMP/htdocs/mysql_php/meibo/data/member_list.csv
に置いてあります。
使用するphpファイルはmemberlist.phpで、絶対パスは
/Applications/MAMP/htdocs/mysql_php/meibo/memberlist.php
に置いてあります。
次のようなコードを組みました。
load data infileの部分がなければ問題なく機能するのですが、そこの部分があるだけでエラーを吐きます。
エラー内容は次の通りです。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'load data infile '/Applications/MAMP/htdocs/mysql_php/meibo/data/member_list.csv' at line 2
MySQLモニタ上ではエラーが起きないし、ちゃんと実行もされるので、絶対パスが間違っていたり、テーブル構造が間違っているということはないはずです。
しかし、phpでやるとエラーが起きてしまいます。
コマンドにエラーが見当たらず困っています、誰かお助けください。
よろしくお願いします。
PCはmacです。
現在、csvファイルからLOAD DATA INFILE関数を用いてテーブルにデータをインポートするphpプログラムを考えています。
csvファイルは、member_list.csvで、絶対パスは
/Applications/MAMP/htdocs/mysql_php/meibo/data/member_list.csv
に置いてあります。
使用するphpファイルはmemberlist.phpで、絶対パスは
/Applications/MAMP/htdocs/mysql_php/meibo/memberlist.php
に置いてあります。
次のようなコードを組みました。
<?php
/****************データベースに接続****************/
require_once("db_info.php");
$s = mysqli_connect($SERVER,$USER,$PASSWORD) or die("接続に失敗しました。設定を見直してください。");
mysqli_select_db($s,$DBNAME);
print "<font size ='1'>接続に成功しました。</font><br>";
/****************ヘッダーの設定****************/
print <<<eot1
<html>
<head>
<meta-equiv="Content-Type" content = "text/html;charset = UTF-8">
<title>名簿管理</title>
</head>
<body>
eot1;
$mypass = dirname(__FILE__)."/data/member_list.csv";
/****************csvファイルを読み込んで、tmp_memberテーブルにデータを挿入****************/
$code = <<<eot2
delete from tmp_member;
load data infile '/Applications/MAMP/htdocs/mysql_php/meibo/data/member_list.csv' into table tmp_member fields terminated by ',' LINES TERMINATED BY '\r' ignore 1 LINES;
eot2;
mysqli_query($s,$code) or die(mysqli_error($s));
print <<<eot4
</body>
<html>
eot4;
/****************データベースから切断****************/
mysqli_close($s);
?>
エラー内容は次の通りです。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'load data infile '/Applications/MAMP/htdocs/mysql_php/meibo/data/member_list.csv' at line 2
MySQLモニタ上ではエラーが起きないし、ちゃんと実行もされるので、絶対パスが間違っていたり、テーブル構造が間違っているということはないはずです。
しかし、phpでやるとエラーが起きてしまいます。
コマンドにエラーが見当たらず困っています、誰かお助けください。
よろしくお願いします。