作为最近升级到Apache2.2 / PHP 5.5.20(来自Apache 1.3 / PHP 5.3)的一部分,我发现了以下问题:
每当PHP尝试从Oracle检索Date数据类型时,结果将被解析为字符串,并从中删除YYYY-MM-DD部分:
$tempQuery = "SELECT SYSDATE FROM DUAL";
$tempStatement = oci_parse($this->conn, $tempQuery);
$tempSuccess = oci_execute($tempStatement);
oci_fetch_all($tempStatement, $tempData);
echo "<h3>var_dump(\$tempData) :" . var_dump($tempData) . "</h3>";
的var_dump($ TempData的)
我们得到:
array(1) {
["SYSDATE"]=> array(1) {
[0]=> string(8) "20:02:20"
}
}
我们使用的是PHP 5.5.20,Apache 2.2,Oracle Server 11i,Oracle Client 9,SUSE Linux 11 SP2
我意识到解决此问题的最佳方法是在PL / SQL中格式化日期,但这是不可能的,因为这是遗留功能。毋庸置疑,这在升级之前工作正常。
有什么想法吗?