如何在PHP中创建假日函数?

时间:2015-02-24 04:45:20

标签: php sql oracle function

我试图创建一个用PHP生成假期的函数。 我已将假日日期存储在Oracle Table中:
HOLIDAY
01-JAN-15
03-JAN-15
04-JAN-15

我的问题是,如何使功能获得假期日期? 我的意思是,我需要找出is_holiday(' 01-JAN-15')假期是真的。

这是我的源代码:



<?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");
?>
&#13;
&#13;
&#13;

此代码不起作用并始终返回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 个答案:

答案 0 :(得分:2)

我认为,问题是,你的函数中没有变量$ connect。试试这个:

function is_holiday($thedate, $connect)

然后调用函数:

echo is_holiday("08-JAN-15", $connect); 

答案 1 :(得分:0)

默认情况下,PHP全局变量中的这些因素在函数中不可见。在您的情况下,函数内部的连接是一个局部变量,该值未定义。像这样改变你的功能:

function is_holiday($thedate)
{
    global $connect;
    $sql = OCIParse($connect, "SELECT * FROM UF2T_HOLIDAY WHERE HOLIDAY = '".$thedate."'");
    ociexecute($sql);
    ...