我的php字符串包含以下数据:
$OpenDate = '20-Sep-18' ;
但当我把它插入数据库时,它会给我一个错误:
Column not found: 1054 Unknown column 'Sep' in 'field list'' in C:\xampp
尝试将所有“-”替换为“\”,但也不起作用。
编辑:
查询代码:
$stmt = $conn->query("INSERT INTO `ticketinfo`
(`tOrderId`)
VALUES
( ".$tOrderID.") on duplicate key update `tPLU`= ".$tPLU." , `tPrice`= ".$Total1." , `tBuy`=".$OpenDate );
问题出在$opendate中
2条答案
按热度按时间e4eetjau1#
根据https://dev.mysql.com/doc/refman/8.0/en/datetime.html 正确的日期格式是yyyy-mm-dd,因此不是字母形式的月份,而是数字形式的月份。应该是2018-09-20。
ie3xauqp2#
mysql日期时间格式为
'YYYY-MM-DD HH:MM:SS'
. 仅就日期而言,应为:'YYYY-MM-DD'
在php(应用程序代码)中,需要将日期字符串转换为mysql可接受的格式。你可以用strotime()
函数将日期字符串转换为时间戳。然后,使用date()
要转换为的函数YYYY-MM-DD
.最后,在insert查询中使用这个转换的日期字符串。
此外,根据错误消息,查询参数需要转义。请学习并执行事先准备好的声明
尝试(rextester演示):
所用格式选项的其他详细信息:
Y
一年的完整数字表示,4位数字示例:1999或2003m
月份的数字表示法,前导零为01到12d
月份的第几天,前导零为01到31的两位数字