Задать вопрос
@del993788

Как отправить несколько дат в бд?

Здравствуйте. У меня столбец имеет тип DATE. Но php почему не правильно обрабатывает вот этот код:
$from = new DateTime('2016-01-31');
$to   = new DateTime('2016-02-04');
 
$period = new DatePeriod($from, new DateInterval('P1D'), $to);
 
$array_dates = array_map(
    function($item){return $item->format('Y.m.d');},
    iterator_to_array($period)
);

$date_string = implode(',',$array_dates);
mysqli_query($connect, "INSERT INTO `date` VALUES (".$date_string.")");


Почему-то в бд заполняется одна строка с содержимым 0000-00-00, хотя должно быть несколько строк с датами. Почему у меня возникает такая ошибка?
  • Вопрос задан
  • 296 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
php не при чем
DATE - хранит значение даты в виде ГГГГ-ММ-ДД. Например, 2008-10-23.
С чего Вы решили, что туда можно записывать несколько дат через запятую?
Если у Вас несколько дат, то и ячеек с типом DATE должно быть несколько.
0000-00-00 - значение по умолчанию для типа DATE, которое ставится каждый раз, когда происходит попытка записать туда ересь.
Однако Вы можете извратиться и хранить даты через запятую в одной ячейке, но типа STRING
Ответ написан
@edb
SQL
$date_string = "('" . implode("'), ('", $array_dates) . "')";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы