Я пытаюсь создать функцию для создания праздника в 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
Я думаю, эта проблема в том, что переменная $ connect недоступна в вашей функции. Попробуй это:
function is_holiday($thedate, $connect)
а затем вызовите функцию:
echo is_holiday("08-JAN-15", $connect);
Это потому, что по умолчанию глобальные переменные PHP не видны в функциях. В вашем случае соединение внутри вашей функции является локальной переменной, значение которой не определено. Измените свою функцию следующим образом:
function is_holiday($thedate)
{
global $connect;
$sql = OCIParse($connect, "SELECT * FROM UF2T_HOLIDAY WHERE HOLIDAY = '".$thedate."'");
ociexecute($sql);
...
print_r($result);