• 締切済み

exec関数の中に変数を入れたい

CSVファイル(kabu.csv)をmysqlに記録すべく下記のPHPを組みました。 PHPのexec関数の中で、MySQLを動作させます。 下記でPHPファイルと同じ階層にあるkabu.csvをMySQLにインサートすることが可能でした。 <?php try { $con = new PDO("mysql:host=127.0.0.1;dbname=db", "root", "password", array(PDO::MYSQL_ATTR_LOCAL_INFILE => 1)); $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $con->exec('load data local infile \'kabu.csv\' IGNORE INTO TABLE photo_in fields terminated by \',\' enclosed by \'"\' escaped by \'"\''); } catch (PDOException $e) { echo $e->getMessage(); } ?> ********************************************************************************* 次に、 \'kabu.csv\'を外に出しました。($file = 'kabu.csv';) (将来的にこのkabu.csvはクエリーと連動して名前をが変わるようにする予定です。) ********************************************************************************** <?php $file = 'kabu.csv'; try { $con = new PDO("mysql:host=127.0.0.1;dbname=db", "root", "password", array(PDO::MYSQL_ATTR_LOCAL_INFILE => 1)); $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $con->exec('LOAD DATA LOCAL INFILE $file IGNORE INTO TABLE photo_in fields terminated by \',\' enclosed by \'"\' escaped by \'"\''); } catch (PDOException $e) { echo $e->getMessage(); } ?> 単純に \'kabu.csv\'を$fileに置き換えただけではうまく動作しません。(MySQLに入力されません) どのように記載すれば、作動するでしょうか? 初歩的な質問かと思いますが、よろしくお願いいたします。 環境はCentOS 6.6 + MySQL5.6 です。エラーは下記となります。  SQLSTATE[42000]: Syntax error or access violation: 1064 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 '$file IGNORE INTO TABLE photo_in fields terminated by ',' enclosed by '"' escape' at line 1

関連するQ&A