我正在尝试通过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设置当前日期?
答案 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()
。