我有一个.CSV文件将导入到mysql数据库,使用加载数据本地infile语法,我的csv文件包含23列,但我只想在数据库中导入所选列。
我的问题是我的加载infile systax没有从我的.CSV文件导入任何东西。
以下是我的代码:
$mysql = printf("LOAD DATA LOCAL INFILE 'File.csv' INTO TABLE table
FIELDS
TERMINATED BY ','
LINES
TERMINATED BY '\\n'
IGNORE 1 LINES
(column1, column2, column3...)
");
$query = mysql_query($mysql);
任何帮助将不胜感激。
非常感谢!
答案 0 :(得分:2)
登录SSH提示。
然后输入
# mysql -u admin -p`cat /etc/psa/.psa.shadow`;
mysql>LOAD DATA LOCAL INFILE 'File.csv' INTO TABLE table
FIELDS
TERMINATED BY ','
LINES
TERMINATED BY '\\n'
IGNORE 1 LINES
(column1, column2, column3...)
如果它正常工作,则问题在于您的数据库用户权限。更改数据库用户权限并执行。
答案 1 :(得分:0)
在Windows上这是我使用的。我使用一个远程数据库,仍然需要为文件位置dir“C:\”添加额外的斜杠,在上面的两个例子中似乎都有额外的斜杠'\ n' 我相信它应该只是一个。编辑它并在mysql工作台或类似的GUI
中尝试LOAD DATA LOCAL INFILE 'c:\\resultItem.txt'
INTO TABLE resultItem
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '|'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(ID, Accessibility, Assigned_To, AttachedFileCount, Category, `Change`, Changed_By,Changed_Date,ChildLinkCount,Closed_By,Closed_Date,Dependent_Date,Dependent_Link_Status,Description, @insertedtothisDB)
SET insertedtothisDB = utc_timestamp();