CSVファイルをLOAD DATA LOCAL INFILEしようと考えています。
$s = mysql_connect('mysqlxxx.db.sakura.ne.jp', 'user', 'password', 128);
mysql_select_db("user", $s);
$sql = sprintf("LOAD DATA LOCAL INFILE '%s' REPLACE INTO TABLE ItemInfo
FIELDS TERMINATED BY ','",
mysql_real_escape_string('/home/user/www/folder/File.csv')
);
$query = mysql_query($sql);
LOAD DATA LOCALの処理の権限を有効にするために
mysql_connect関数のパラメータclient_flags の値を128にして実行したのですが、
以下のエラーになってしまいます。
1148: The used command is not allowed with this MySQL version
どなたか、原因・解決法をご教授いただきたいです。
$client_flagsは第五引数ですぞ!
第四引数の$new_link=trueの入れ忘れが原因かと。
mysql_connect('mysqlxxx.db.sakura.ne.jp', 'user', 'password', true, 128);
でどうでしょ。
ありがとうございます!どうやらそのようでした。
エラーメッセージが1148 → 2027: Malformed packet に変わりました。
また新たな問題が出現した感ですが、ひとまずmysql_connect関数の誤った書き方は解消です。