时间php的插入查询

ymzxtsji  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(327)

我的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中

e4eetjau

e4eetjau1#

根据https://dev.mysql.com/doc/refman/8.0/en/datetime.html 正确的日期格式是yyyy-mm-dd,因此不是字母形式的月份,而是数字形式的月份。应该是2018-09-20。

ie3xauqp

ie3xauqp2#

mysql日期时间格式为 'YYYY-MM-DD HH:MM:SS' . 仅就日期而言,应为: 'YYYY-MM-DD' 在php(应用程序代码)中,需要将日期字符串转换为mysql可接受的格式。你可以用 strotime() 函数将日期字符串转换为时间戳。然后,使用 date() 要转换为的函数 YYYY-MM-DD .
最后,在insert查询中使用这个转换的日期字符串。
此外,根据错误消息,查询参数需要转义。请学习并执行事先准备好的声明
尝试(rextester演示):

$OpenDate = '20-Sep-18';
$mySQLFormatOpenDate = date('Y-m-d', strtotime($OpenDate));

echo $mySQLFormatOpenDate; // test display the formatted date

/* Now use $mySQLFormatOpenDate in your SQL Insert query */

所用格式选项的其他详细信息: Y 一年的完整数字表示,4位数字示例:1999或2003 m 月份的数字表示法,前导零为01到12 d 月份的第几天,前导零为01到31的两位数字

相关问题