Вставить запрос на время Php - PullRequest
0 голосов
/ 05 октября 2018

Моя строка PHP содержит эти данные:

$OpenDate = '20-Sep-18' ; 

, но когда я вставляю ее в базу данных, выдается ошибка:

Column not found: 1054 Unknown column 'Sep' in 'field list'' in C:\xampp

попытался заменить все '-' на '_ 'но это также не сработало.

РЕДАКТИРОВАТЬ:

КОД ЗАПРОСА:

$stmt = $conn->query("INSERT INTO `ticketinfo`
(`tOrderId`)
VALUES
( ".$tOrderID.") on duplicate key update `tPLU`= ".$tPLU." , `tPrice`= ".$Total1." , `tBuy`=".$OpenDate  );

проблема в $ OpenDate

Ответы [ 2 ]

0 голосов
/ 05 октября 2018
  • Формат даты и времени MySQL равен 'YYYY-MM-DD HH:MM:SS'.Только для даты это будет: 'YYYY-MM-DD'
  • В PHP (код приложения) вам нужно будет преобразовать строку даты в приемлемый формат для MySQL.Вы можете использовать функцию strotime() для преобразования строки даты в метку времени.Затем используйте функцию date() для преобразования в YYYY-MM-DD.
  • В конечном итоге используйте эту преобразованную строку даты в запросе на вставку.
  • Кроме того, на основании вашей ошибкисообщение, параметры вашего запроса должны быть экранированы.Пожалуйста, изучите и выполните Подготовленные заявления

Попробуйте ( Rextester Demo ):

$OpenDate = '20-Sep-18';
$mySQLFormatOpenDate = date('Y-m-d', strtotime($OpenDate));

echo $mySQLFormatOpenDate; // test display the formatted date

/* Now use $mySQLFormatOpenDate in your SQL Insert query */

Дополнительные сведения об используемых параметрах формата:

  • Y Полное числовое представление года, 4 цифры. Примеры: 1999 или 2003
  • m Числовое представлениемесяц с ведущими нулями от 01 до 12
  • d день месяца, 2 цифры с ведущими нулями от 01 до 31
0 голосов
/ 05 октября 2018

В соответствии с https://dev.mysql.com/doc/refman/8.0/en/datetime.html правильный формат даты - ГГГГ-ММ-ДД, поэтому не в месяцах, а в цифрах.Должно быть 2018-09-20.

...