Привет, я хочу отправить в базу данных MySQL дату и время в формате, совместимом с форматом mysql DateTime, который является: 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. благодаря
Используйте 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);
MySQL позволяет использовать только ограниченное количество форматов дат в качестве входных данных. Из руководства по MySQL :
Поддерживаются только форматы, описанные в следующих разделах. Ожидается, что вы предоставите правовые ценности. Непредсказуемые результаты могут возникать, если вы используете значения в других форматах.
Вы даете дату в формате Ymd\TH:i:sP
(значение константы DATE_ATOM
), которая не поддерживается MySQL (хотя она может быть проанализирована и сохранена правильно в зависимости от текущего режима SQL).
Вы должны использовать date('Ymd H:i:s', ...)
.
PS И да, вы должны защитить свой код от инъекций SQL.
$date = date("Ymd 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);
Сначала я хочу сказать вам, что вы должны следовать рекомендациям в комментариях и читать по SQL-инъекции.
Этот код будет вставлять запись с текущим временем в нужном формате.
$insert = "INSERT INTO sms (ref, texto, fecha) VALUES ('".$_POST['usuario']."', '".$_POST['sms']."', '".date('Ymd H:i:s')."' )"; $add_member = mysql_query($insert);
Если вам не нужно текущее время, вам нужно изменить date('Ymd H:i:s')
на date('Ymd H:i:s', some_unix_timestamp)