使用日期加载数据本地Infile

时间:2016-07-14 20:30:37

标签: php mysql

我正在尝试通过Load Data Local Inline语句插入当前日期和时间。想通过命令插入当前日期和时间。出现以下错误:SQL语法中存在错误;检查与您的MySQL服务器版本相对应的手册,以便在' @ Date_Update = date(' Y-m-d')'附近使用正确的语法。在第3行。

这是我的陈述。

 $sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE contacts 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r' 
IGNORE 1 LINES
    (User_Category, Name, Logon_id, @Date_Update)
    SET ID=@ID, @Date_Update=date('Y-m-d');
    ";

是否可以使用Load Data Local Infile设置当前日期?

2 个答案:

答案 0 :(得分:1)

我认为问题在于字段的错误分配:

$sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE contacts 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r' 
IGNORE 1 LINES
    (User_Category, Name, @Logon_id, @Date_Update)     ◄■■■■■■■■■■■■■■■■
    SET ID=@Logon_id, Date_Update=NOW();               ◄■■■■■■■■■■■■■■■■
    ";

答案 1 :(得分:0)

您未在@variable子句中指定SET。这应该包含您要分配给的表格列,使用@variable从CSV文件中获取列。

但是,如果您想插入当前日期,则无需访问CSV列。

$sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE contacts 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r' 
IGNORE 1 LINES
    (User_Category, Name, Logon_id, @Date_Update)
    SET ID=@ID, Date_Update=TODAY();
    ";

BTW,date('Y-m-d')是一个PHP函数,而不是MySQL。用于格式化日期和时间的MySQL函数是DATE_FORMAT()