Дата неправильно хранится в MariaDBPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Дата неправильно хранится в MariaDB

Сообщение Anonymous »

Моя выходная дата 1988-00-00 отличается от моей входной даты 2012-12-12, и я не могу понять, почему?
Я вставляю дату 2012-12-12, которая находится в переменной $_SESSION[CompletionDate], в таблицу MariaDB со следующим php сценарий:

Код: Выделить всё

echo"
CompletionDate = ".$_SESSION['CompletionDate']."

mysqli_query($cxn,"INSERT INTO conservatorreport (UniqueConservatorReportRecordID,ClockID,ConservatorID,CompletionDate,ConservatorJobIdentifier,ConservatorReportFile) VALUES ('$_SESSION[UniqueConservatorReportRecordID]','$_SESSION[UniqueClockRecordID]','$_SESSION[UniqueConservatorRecordID]',STR_TO_DATE($_SESSION[CompletionDate],'%Y-%m-%d'),'$_SESSION[ConservatorJobIdentifier]','$_SESSION[ConservatorReportFile]')")
Все эти переменные правильно вставлены в таблицу conservatorreport, за исключением $_SESSION[CompletionDate], которая отображается в таблице как 00.00.1988. Эхо-скрипт располагается непосредственно перед оператором INSERT и показывает:

CompletionDate = 2012-12-12
Итак, я убежден, что ввожу 12 декабря 2012 г. Я не понимаю, как ввод 2012-12-12 становится выводом 1988-00-00? В таблице conservatorreport MariaDB CompletionDate определяется как date.
Когда я опускаю функцию STR_TO_DATE и отправьте команду INSERT следующим образом:

Код: Выделить всё

mysqli_query($cxn,"INSERT INTO conservatorreport (UniqueConservatorReportRecordID,ClockID,ConservatorID,CompletionDate,ConservatorJobIdentifier,ConservatorReportFile) VALUES ('$_SESSION[UniqueConservatorReportRecordID]','$_SESSION[UniqueClockRecordID]','$_SESSION[UniqueConservatorRecordID]',$_SESSION[CompletionDate],'$_SESSION[ConservatorJobIdentifier]','$_SESSION[ConservatorReportFile]')")
Я получаю следующее сообщение об ошибке:

Неустранимая ошибка: Uncaught mysqli_sql_Exception: Неверное значение даты: '1988' для отчет консерватора столбца.

Код: Выделить всё

CompletionDate
Я потратил несколько дней, пытаясь найти ошибку, и начал верить, что это связано с чем-то в MariaDB, но я не знаю, где искать.
Информация о моем сервере базы данных:
Сервер: Localhost через сокет UNIX
Тип сервера: MariaDB
Подключение к серверу: SSL есть не используется Документация
Версия сервера: 10.4.28-MariaDB — распространение исходного кода
Версия протокола: 10
Пользователь: root@localhost
Кодировка сервера: UTF-8 Unicode (utf8mb4)
Информация о моем веб-сервере:
Apache/2.4.56 (Unix) OpenSSL/1.1.1t PHP/8.2.4 mod_perl/2.0.12 Perl/v5.34.1
Версия клиента базы данных: libmysql - mysqlnd 8.2.4
Расширение PHP: mysqli Документация curl Документация mbstring Документация
PHP версия: 8.2.4## Заголовок ##

Подробнее здесь: https://stackoverflow.com/questions/793 ... in-mariadb
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»