나는 아주 간단한 것을 얻으려고합니다. 오늘부터 내년 말까지 holidays
테이블에서 공휴일 세부 정보를 읽고 결과를 연관 배열 배열의 var_dump로 표시합니다 (요점은 일단 작동하면 나는 json_encode()
이 될 수 있기를 원합니다). 테이블에 행이 있지만 내 코드는 빈 배열 array(0){}
을 반환합니다. 누군가 잘못 된 것을 말할 수 있습니까? 대신 BETWEEN의 아래데이터베이스에서 빈 배열을 읽는 중
<?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>";
분명히 귀하의 쿼리는 아무것도 반환하지 않습니다. 즉, 쿼리가 잘못되었습니다. 콘솔이나 phpmyadmin을 통해 mysql에서 직접 해봤습니까? –
@u_mulder 아, 내가 얼마나 바보인지! 표의 기존 날짜가이 범위를 벗어났습니다. : P – dotslash