我在PHP上有这个脚本:
$sql = "
SELECT *
FROM PROJECT.ACTIVITY
WHERE START_DATE = '03-02-2012'
";
$stid = oci_parse($conn,$sql);
oci_execute($stid);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
它在我的另一台机器上工作但在另一台机器上失败了,
失败的消息:
警告:oci_fetch_array()[function.oci-fetch-array]:ORA-01843:第31行的C:\ Inetpub \ wwwroot \ info.php中不是有效月份
work machine: - win 7 prof x64 - IIS 7.5 - PHP 5.2.6 - Oracle 11g work machine: - win 7 prof x64 - Apache 2.2.11 - PHP 5.2.6 - Oracle 11g failed machine: - win 2003 server x64 - IIS 6.0 - PHP 5.1.4 - Oracle 11g
这三台机器从一台oracle服务器获得oracle db。
答案 0 :(得分:0)
检查数据库上的NLS_DATE_FORMAT
参数,确保它与您在PHP部分中传递的日期相匹配。如果没有,请使用to_date
并将其转换为所需格式。
答案 1 :(得分:0)
如果START_DATE的数据类型为DATE,则您的语句应如下所示:
SELECT * FROM PROJECT.ACTIVITY WHERE START_DATE = TO_DATE('03-02-2012','DD-MM-YYYY');