簡體   English   中英

PHP Oracle SQL選擇日期to_char

[英]PHP Oracle SQL Select date to_char

我正進入(狀態; 當我嘗試執行以下命令時, "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']).傳遞給$time as stime($row_oci['STIME']).

您被PHP 字符串插值法所困擾

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

$time被其內容轉換為字符串 -以及將值傳遞給oci_parse函數之前的內容所代替。 由於日期的字符串表示形式可能包含空格,字母, / ,...,因此會混淆報告ORA-00904: Invalid identifier的Oracle SQL解析器。

就我自己而言,我建議改用bind參數。 這不容易出錯-而且更安全

$result = oci_parse($conn3, "SELECT TO_CHAR(:time, 'mm/dd/yyyy') FROM MON_EVENTS");
oci_bind_by_name($result, ':time', $time);

$ id = $ row_oci ['ID'];
$ result = oci_parse($ conn2,“從ID為$ id的MON_EVENTS中選擇TO_CHAR(STIME,'MON / DD / YY hh24:mm:ss')
oci_execute($ result);
while($ row_result = oci_fetch_array($ result)){
回顯“”。 $ row_result ['0']。“”;}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM