【发布时间】:2015-11-03 19:05:07
【问题描述】:
我正在使用此代码在我的数据库中加载文件。这是我在putty上上传的一个php文件:
$Db->query('LOAD DATA LOCAL INFILE \'/name 03.11.2015.csv\'
INTO TABLE '.$in_table.'
FIELDS TERMINATED BY \',\'
ENCLOSED BY \'"\'
LINES TERMINATED BY \'\n\'
IGNORE 8 ROWS
(@date, number, @name)
set date=str_to_date(@date,\'%Y-%m-%d\'),
name= \'name\'
;');
现在我想在查询的第一行有一个变量而不是一个特定的文件名:
$Db->query('LOAD DATA LOCAL INFILE \'/path/name 03.11.2015.csv\'
所以,我正在使用它,它似乎正在工作:
$date = '.....';
$name = '.....';
$Db->query('LOAD DATA INFILE \'/path/'.$name.' '.$date.'.csv\'
INTO TABLE '.$in_table.'
FIELDS TERMINATED BY \',\'
ENCLOSED BY \'"\'
LINES TERMINATED BY \'\n\'
IGNORE 8 ROWS
(@date, number, @name)
set date=str_to_date(@date,\'%Y-%m-%d\'),
name= \'name\'
;');
但现在我必须更改我的代码,因为某些文件的文件名中没有这种格式:'$name $date'。下面给出一些例子:
- 姓名 2015-10-10
- 名称 2015-10-10
鉴于名称是特定值,我如何检查文件名?我想连接文件名并获取名称和日期以便找到文件,然后在我的代码中使用原始文件名。
【问题讨论】:
-
“特定值”是什么意思?
-
例如它是“aaa”或“bbb”。所以,如果字符串(文件名)中有一个“aaa”,那么列名就是“aaa”。