JC Carmo Ответов: 1

Php - как проверить, равны ли сегодняшние день и месяц столбцу Y-m-d в базе данных mysql?


Всем привет!

Я пытаюсь настроить свою систему для сохранения пожеланий ко дню рождения в своей базе данных, но я застрял с PHP-кодом. Мне нужно проверить, совпадают ли сегодняшний месяц и день с месяцем и днем в поле День рождения (Y-m-d) dob базы данных. Я очень ценю ваше время и помощь. Миллион раз спасибо!

JC.

Что я уже пробовал:

if (date('Y-m-d') == $dados4['dob']) {
    $sql06 = "INSERT INTO comunicacao (enviar_para, titulo, descricao, tipo, curso, modulo, data_cadastro, hora_cadastro) VALUES ('".$_SESSION['usuarioId']."','Happy Birthday!','We wish you all the best on this very soecial day.','Todos','Todos','Todos','".date('Y-m-d')."','".date('H:i:s')."')";
    $query06 = mysqli_query($mysqli, $sql06);
}

Gerry Schmitz

Ты неправильно написала "особенный".

Richard MacCutchan

Почему вы храните это сообщение в базе данных? Единственный пункт, который вам нужно сохранить, - это дата рождения.

Richard Deeming

PHP: SQL-инъекция - руководство пользователя[^]

В данном конкретном случае, вы вероятно сойдет это с рук, если предположить, что $_SESSION['usuarioId'] это целое число или, по крайней мере, нечто такое, что не может контролироваться пользователем.

Но использование конкатенации строк / интерполяции для построения SQL-запросов-плохая привычка, и она определенно оставит ваш код уязвимым в будущем.

1 Ответов

Рейтинг:
1

phil.o

Вам нужно только проверить, что части дня и месяца равны для обоих значений; часть года не считается.

$today = getdate();
$birthday = date_parse($dados4['dob']);
if (
      $today['mday'] == $birthday['mday']
   && $today['mon']  == $birthday['mon']
)
{
   /* Birthday */
}
else
{
   /* Not birthday */
}