我正在尝试通过加载数据本地内联语句插入当前日期和时间。想通过命令插入当前日期和时间。收到以下错误:SQL 语法有错误;检查与您的MySQL服务器版本相对应的手册,了解在第3行的"@Date_Update=date('Y-m-d')"附近使用的正确语法。
这是我的发言。
$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');
";
是否可以在加载数据本地文件的情况下设置当前日期?
我认为问题是字段分配错误:
$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(); ◄■■■■■■■■■■■■■■■■
";
您不会在 SET
子句中分配给@variable
。它应包含要分配到的表列,使用 @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();
";
顺便说一句,date('Y-m-d')
是一个PHP函数,而不是MySQL。用于格式化日期和时间的 MySQL 函数DATE_FORMAT()
。