从PHP插入日期和时间值到MySql

时间:2010-06-01 03:54:34

标签: php mysql datetime

您好我想以与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服务器的日期和时间。感谢

4 个答案:

答案 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:sPDATE_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)