Вставка даты и времени в MySql из PHP - PullRequest
1 голос
/ 01 июня 2010

Здравствуйте, я хочу отправить в базу данных 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. Спасибо

Ответы [ 4 ]

1 голос
/ 01 июня 2010

MySQL допускает в качестве входных данных только ограниченное количество форматов даты. Из руководства MySQL :

Поддерживаются только форматы, описанные в следующих разделах. Ожидается, что вы предоставите юридические значения. Непредсказуемые результаты могут возникнуть, если вы используете значения в других форматах.

Вы предоставляете дату в формате Y-m-d\TH:i:sP (значение константы DATE_ATOM), которая не поддерживается MySQL (хотя она может быть проанализирована и правильно сохранена в зависимости от текущего SQL режим).

Вы должны использовать date('Y-m-d H:i:s', ...) вместо.

P.S. И да, вы должны защитить свой код от SQL-инъекций.

1 голос
/ 01 июня 2010

Используйте 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);
0 голосов
/ 01 июня 2010

Сначала я хочу сказать вам, что вы должны следовать советам в комментариях и прочитать о внедрении 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)

0 голосов
/ 01 июня 2010
$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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...