0

我正进入(状态; "Warning: oci_execute(): ORA-00904: "JAN": invalid identifier",当我尝试执行这些命令时:

function stime($conn3, $time){

    $result = oci_parse($conn3, "SELECT TO_CHAR($time, 'mm/dd/yyyy') FROM MON_EVENTS")or die(oci_error());
    oci_execute($result);
}

STIME 也是数据库中的一个日期字段。

我把STIME田地传给$time as stime($row_oci['STIME']).

4

2 回答 2

2

你被 PHP字符串插值咬住了:

$result = oci_parse($conn3, "SELECT TO_CHAR($time, 'mm/dd/yyyy') FROM MON_EVENTS")or die(oci_error());
//                                          ^^^^^

$time转换为字符串的内容替换- 并且将值传递给oci_parse函数之前。由于日期的字符串表示可能包含空格、字母、/...,它会混淆报告的 Oracle SQL 解析器ORA-00904: Invalid identifier

就我自己而言,我建议改用绑定参数。这更不容易出错——而且更安全

$result = oci_parse($conn3, "SELECT TO_CHAR(:time, 'mm/dd/yyyy') FROM MON_EVENTS");
oci_bind_by_name($result, ':time', $time);
于 2015-01-26T19:07:04.953 回答
0

$id = $row_oci['ID'];
$result = oci_parse($conn2, "SELECT TO_CHAR(STIME,'MON/DD/YY hh24:mm:ss') 从 MON_EVENTS WHERE ID = $id");
oci_execute($result);
while($row_result = oci_fetch_array($result)){
echo "". $row_result['0'] ."";}

于 2015-01-27T11:59:05.913 回答