[英]Use Variable In LOAD DATA LOCAL INFILE PHP
I've been working on a script that will import data from a CSV file to phpMyAdmin database table. 我一直在研究一个脚本,该脚本会将数据从CSV文件导入到phpMyAdmin数据库表中。
Using this code was working ok: 使用此代码可以正常工作:
$query = <<<eof
LOAD DATA LOCAL INFILE '$file'
INTO TABLE c170720
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(ccode,custarea,ttlpkt)
eof;
But if I use this, it doesn't work: 但是,如果我使用它,它将不起作用:
$query = <<<eof
LOAD DATA LOCAL INFILE '$file'
INTO TABLE '$m_cfile'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(ccode,custarea,ttlpkt)
eof;
This is the entire code: 这是完整的代码:
<?php
$host = "localhost";
$user = "root";
$password = "";
$db = "smposf";
$con = mysqli_connect($host,$user,$password,$db);
$message = "";
if (isset($_POST['submit3']))
{
$m_date=date($sdate);
$m_yy=substr($m_date,2,2);
$m_mm=substr($m_date,5,2);
$m_dd=substr($m_date,8,2);
$m_cfile='c'.$m_yy.$m_mm.$m_dd;
$allowed = array('csv');
$filename = $_FILES['file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if (!in_array($ext, $allowed))
{
// show error message
$message = 'Invalid file type, please use .CSV file!';
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], "CSV/" .
$_FILES['file']['name']);
$file = "CSV/" . $_FILES['file']['name'];
$query = <<<eof
LOAD DATA LOCAL INFILE '$file'
INTO TABLE '$m_cfile'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(ccode,custarea,ttlpkt)
eof;
if (!$result = mysqli_query($con, $query))
{
exit(mysqli_error($con));
}
$message = "CSV file successfully imported!";
}
}
?>
If I use 如果我用
LOAD DATA LOCAL INFILE '$file' INTO TABLE c170720 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\\n' IGNORE 1 LINES (ccode,custarea,ttlpkt)
it works totally fine, but I need variable $m_cfile
. 它完全可以正常工作,但是我需要变量$m_cfile
。 This is because the user will create a file per day with a specific date. 这是因为用户将每天创建一个带有特定日期的文件。 What is wrong? 怎么了?
将INTO TABLE '$m_cfile'
更改为INTO TABLE $m_cfile
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.