Этот вопрос надо задавать не в Спортлото, а
своей базе данных.
Только она знает, почему запрос не выполняется.
Для этого надо
правильно соединяться с mysqli.
Не одной строчкой, а указывая все нужные параметры. В частности режим отображения ошибок:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
И тогда БД сможет тебе наконец сказать, что ей не так.
Если взять код mysqli.php по ссылке выше, то правильный, безопасный, и сообшающий о своих ошибках код будет таким
function SendNotice($conn, $p1, $p2) {
$sql = "SELECT `id` FROM `users` WHERE `login` = ?";
$row = prepared_query($mysqli, $sql, [$p1])->get_result()->fetch_assoc();
if (!$row['id']) echo 'Ошибка!';
$sql = "INSERT INTO `notifications` VALUES (null, ?, 0, NOW(), ?)";
prepared_query($conn, $sql, [$row[id], $p2]);
}
И вызываться она должна так
include 'mysqli.php';
SendNotice($conn, 'test', 'Test text');