PHP Oracle SQL选择日期到字符

PHP Oracle SQL选择日期到字符,php,oracle,ora-00904,Php,Oracle,Ora 00904,我得到了;警告:oci_execute:ORA-00904:JAN:当我尝试执行以下命令时,标识符无效: 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字段作为

我得到了;警告:oci_execute:ORA-00904:JAN:当我尝试执行以下命令时,标识符无效:

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$row_oci['STIME']传递给$time。

您被PHP咬到了:

$time被转换为字符串的内容替换,并在将值传递给oci_parse函数之前转换为字符串。因为日期的字符串表示可能包含空格、字母、/、。。。它将混淆报告ORA-00904:无效标识符的Oracle SQL解析器

就我自己而言,我建议使用bind参数。这不太容易出错,而且:

$id=$row_oci['id']; $result=oci_parse$conn2,从MON_事件中选择“MON/DD/YY hh24:mm:ss”字符,其中ID=$ID; oci_执行$result; 而$row\u result=oci\u fetch\u array$result{
echo.$row_result['0'].}

您能检查一下日期格式吗?看起来您有一个包含Jan的格式,必须是MONin dateformat Strings,您到底想做什么?为什么要使用查询来尝试格式化PHP变量的值?该查询可能不会达到预期效果:结果集在MON_EVENTS表中每行有一行。都包含相同的值。SELECT和WHERE子句之间有混淆吗?西尔文,谢谢!这已经消除了无效标识符错误。但它仍然没有任何回应。当我通过_name$result,':time',$stime返回oci_bind_时;只是回声是1。我意识到为什么它会返回1。它在每行返回一根火柴。我并没有从阵列中提取数据并进行回应。我解决了这个问题,并把答案放在下面。
$result = oci_parse($conn3, "SELECT TO_CHAR($time, 'mm/dd/yyyy') FROM MON_EVENTS")or die(oci_error());
//                                          ^^^^^
$result = oci_parse($conn3, "SELECT TO_CHAR(:time, 'mm/dd/yyyy') FROM MON_EVENTS");
oci_bind_by_name($result, ':time', $time);