Я пытаюсь добиться чего-то очень простого. Прочитайте подробности праздников из таблицы holidays
с сегодняшнего дня до конца следующего года и покажите результат как var_dump массива ассоциативных массивов (дело в том, что как только он работает, я хочу иметь возможность json_encode()
). Хотя в таблице есть строка, мой код возвращает пустой массив array(0){}
. Может кто-нибудь сказать, что случилось?Пустой массив, считающийся из базы данных
<?php
//test file
//Database details
$db_host = 'localhost';
$db_name = 'hrmsbb';
$db_username = 'root';
$db_password = '';
//connect to database
$conn = new mysqli($db_host, $db_username, $db_password, $db_name);
if ($conn->connect_error) {
die("Connection error");
}
//Show holidays from tomorrow upto the end of next year
$d = new DateTime('tomorrow');
$date_begin = $d->format('Y-m-d');
$d->add(new DateInterval('P1Y')); //add difference of one year
$y = $d->format('Y'); //get resulting year
$date_end = "$y-12-31"; //construct date
$query = $conn->prepare("SELECT holiday_id, name, date, value, comments FROM holidays
WHERE date BETWEEN ? AND ? ORDER BY date ASC");
$query->bind_param("ss", $date_begin, $date_end);
$result = $query->execute();
if($result === false) { //query failed
die("Failed to query database");
}
$query->bind_result($id, $name, $date, $value, $comments);
//return results as array of objects
$data = array();
while($query->fetch()) {
$data[] = array('id' => $id, 'name' => $name, 'date' => $date,
'value' => $value, 'comments' => $comments);
}
echo "<pre>";
var_dump($data);
echo "</pre>";
Очевидно, что ваш запрос ничего не возвращает. Это означает, что ваш запрос неверен. Вы пробовали его непосредственно на mysql - через консоль или phpmyadmin? –
@u_mulder А, какой я идиот! Существующие даты в таблице были вне этого диапазона. : P – dotslash