Размещаем ввод HTML со значением datetime в базу данных MySQL - PullRequest
0 голосов
/ 20 ноября 2018

Я ищу решение для захвата ввода пользователя из ввода HTML, установленного в значение «datetime-local», в базу данных MySQL с полем таблицы, установленным в «datetime».Всякий раз, когда я отправляю форму, ID генерируется и дата сохраняется, но время нет.Пример: 2018-11-20 00: 00: 00.

Мой HTML:

<form class="" action="/index.php" method="post">
  <input type="datetime-local" name="myDate" id="myDate"><br /><br />
  <button id="submit" value="submit">Submit</button><br /><br />
</form>

Мой PHP:

// Check Our Connection
if ( $mysqli->connect_error ) {
  die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
}

// Insert Our Data
$sql = "INSERT INTO test_one ( mydate ) VALUES ( '{$mysqli->real_escape_string($_POST['myDate'])}' )";
$insert = $mysqli->query($sql);

// Print Response from MySQL
if ( $insert ) {
  echo "Success! Row ID: {$mysqli->insert_id}";
} else {
  die("Error: {$mysqli->errno} : {$mysqli->error}");
}

// Close Connection
$mysqli->close();

Я получил код из учебникана Youtube, и это работает до сих пор.Я просто хочу быть в состоянии получить время, которое они выбирают.

ОБНОВЛЕНИЕ: Время экономится, но, похоже, военное время.Пример: ввод = 22.11.2008, 17:00;Выходные данные = 2018-11-22 17: 00: 00

ОБНОВЛЕНИЕ ПОСЛЕ ПЕРВОГО КОММЕНТАРИИ: Это указывает на неудавшийся HTTP-запрос -

  // Check Our Connection
  if ( $mysqli->connect_error ) {
    die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
  }

  // Insert Our Data
  $date = strftime('%Y-%m-%d %H:%M:%S', strtotime(real_escape_string($_POST['myDate'])));
  $sql = "INSERT INTO test_one ( mydate ) VALUES ( '{$mysqli->real_escape_string($_POST['$date'])}' )";
  $insert = $mysqli->query($sql);

  // Print Response from MySQL
  if ( $insert ) {
    echo "Success! Row ID: {$mysqli->insert_id}";
  } else {
    die("Error: {$mysqli->errno} : {$mysqli->error}");
  }

  // Close Connection
  $mysqli->close();

Если он имеет какое-либо отношение к ''около $ date Я пробовал без него и получил ту же ошибку.

Заранее спасибо!

1 Ответ

0 голосов
/ 20 ноября 2018

Проблема в том, что datetime-local добавляет T в середине, то есть 2018-11-19T10: 52: 23.Вы должны изменить формат, чтобы удалить T. Возможно попробуйте это:

$date = strftime('%Y-%m-%d %H:%M:%S', strtotime(real_escape_string($_POST['myDate'])));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...