Как создать функцию праздника в PHP?

0

Я пытаюсь создать функцию для создания праздника в PHP. Я сохранил дату отпуска в Oracle Table:
ДЕНЬ ОТДЫХА
01-JAN-15
03-JAN-15
04-JAN-15
и т.д
Мой вопрос в том, как сделать функцию, чтобы получить дату отпуска? Я имею в виду, мне нужно выяснить, что is_holiday ('01 -JAN-15 ') праздник TRUE.

Здесь мой исходный код:

<?php
include "config/connect.php";
function is_holiday($thedate)
{
	$sql = OCIParse($connect, "SELECT * FROM UF2T_HOLIDAY WHERE HOLIDAY = '".$thedate."'");
	ociexecute($sql);
	$result = oci_fetch_array($sql);

	if(!empty($result[0]))
	{	
		$holiday = "TRUE";
	}
	else
	{
		$holiday = "FALSE";
	}
	return $holiday;
}
echo is_holiday("08-JAN-15");
?>

Этот код не работает и всегда возвращает FALSE. Что я должен сделать, чтобы этот код работал?

Дополнительная информация: Я пытаюсь запустить ее вне функции, что-то вроде этого:

<?php
include "config/connect.php";

    $thedate = '01-JAN-15';
    $sql = OCIParse($connect, "SELECT HOLIDAY FROM UF2T_HOLIDAY WHERE HOLIDAY = '".$thedate."'");
    ociexecute($sql);
    $result = oci_fetch_array($sql);

    if(!empty($result[0]))
    {   
        $holiday = "TRUE";
    }
    else
    {
        $holiday = "FALSE";
    }

echo $holiday;
?>

Этот код работает. Поэтому я думаю, что проблема связана с функцией. Любое предложение? Пожалуйста помоги. Заранее спасибо. Извините за мой плохой английский. : D

  • 2
    Я бы начал с print_r($result);
  • 0
    Выберите ОТПУСК из UF2T_HOLIDAY, ГДЕ ОТДЫХ в ('". $ Thedate."')
Показать ещё 4 комментария
Теги:
function

2 ответа

2
Лучший ответ

Я думаю, эта проблема в том, что переменная $ connect недоступна в вашей функции. Попробуй это:

function is_holiday($thedate, $connect)

а затем вызовите функцию:

echo is_holiday("08-JAN-15", $connect); 
  • 0
    Спасибо, Тео. Я думаю, что это лучшее решение.
0

Это потому, что по умолчанию глобальные переменные PHP не видны в функциях. В вашем случае соединение внутри вашей функции является локальной переменной, значение которой не определено. Измените свою функцию следующим образом:

function is_holiday($thedate)
{
    global $connect;
    $sql = OCIParse($connect, "SELECT * FROM UF2T_HOLIDAY WHERE HOLIDAY = '".$thedate."'");
    ociexecute($sql);
    ...
  • 1
    Это не хорошо использовать глобальные переменные - см. Мой пост для решения.
  • 0
    Вау! Оно работает. Большое спасибо, приятель.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню