您好我想以与mysql DateTime格式兼容的格式向MySQL数据库发送日期和时间,这是:0000-00-00 00:00:00 ......
我使用这段代码从PHP命令中提取日期和时间:
$insert = "INSERT INTO sms (ref, texto, fecha)
VALUES ('".$_POST['usuario']."', '".$_POST['sms']."', '".date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000))."')";
$add_member = mysql_query($insert);
我真的想这样做但是使用MySQL命令,我的意思是,使用mysql服务器的日期和时间。感谢
答案 0 :(得分:1)
插入记录NOW()
INSERT INTO table (date) VALUES (NOW())
代码:
$insert = "INSERT INTO sms (ref, texto, fecha)
VALUES ('".$_POST['usuario']."', '".$_POST['sms']."', NOW() )";
$add_member = mysql_query($insert);
答案 1 :(得分:1)
MySQL只允许有限数量的日期格式作为输入提供。来自MySQL manual:
仅支持以下各节中描述的格式。预计您提供合法的价值。如果您使用其他格式的值,可能会出现不可预测的结果。
您提供的日期格式为Y-m-d\TH:i:sP
(DATE_ATOM
常量的值),MySQL不支持该格式(尽管可能可以解析并正确存储取决于当前的SQL模式)。
您应该使用date('Y-m-d H:i:s', ...)
代替。
P.S。并且,是的,您应该保护您的代码免受SQL注入。
答案 2 :(得分:0)
$date = date("Y-m-d H:i:s", mktime(0, 0, 0, 7, 1, 2000));
$usuario = mysql_real_escape_string($_POST['usuario']);
$sms = mysql_real_escape_string($_POST['sms']);
$date = mysql_real_escape_string($date);
$sql = "INSERT INTO sms (ref, texto, fecha) VALUES ('$usuario', '$sms', '$date')";
mysql_query($sql) or trigger_error(mysql_error().$sql);
答案 3 :(得分:0)
首先,我想告诉您,您应该遵循评论中的建议并阅读SQL注入。
此代码将以正确的格式插入包含当前时间的记录。
$insert = "INSERT INTO sms (ref, texto, fecha)
VALUES ('".$_POST['usuario']."', '".$_POST['sms']."', '".date('Y-m-d H:i:s')."' )";
$add_member = mysql_query($insert);
如果您不想要当前时间,则需要更改
date('Y-m-d H:i:s')
成
date('Y-m-d H:i:s', some_unix_timestamp)