PHP에서 사용하는 oci_bind_by_name
함수와 관련된 이상한 문제가 있습니다.oci_bind_by_name TO_DATE SQL 함수가 포함 된 버그
쇼케이스를 알려 드리겠습니다.
create table test(col1 date);
insert into test values(to_date('01/01/2009','DD/MM/YYYY'));
insert into test values(to_date('01/01/2019','DD/MM/YYYY'));
insert into test values(to_date('01/01/2029','DD/MM/YYYY'));
insert into test values(to_date('01/01/2039','DD/MM/YYYY'));
내가 예를 들어 2009년 1월 1일 및 2019년 1월 2일에 :dt_maj_deb
및 :dt_maj_fin
을 결합하면이 쿼리가 2 개 행에 발생합니다 시작 :
SELECT *
FROM TEST
WHERE col1 BETWEEN TO_DATE (:dt_maj_deb, 'DD/MM/YYYY')
AND TO_DATE (:dt_maj_fin, 'DD/MM/YYYY')
Results
-------
01.01.2009
01.01.2019
모든 것이 예상대로입니다. 내 우려는 내가 PHP에서 동일한 쿼리를 시작하려는 경우입니다. 여기에 내 테스트 코드가있다 :
$query = "SELECT * FROM TEST
WHERE col1 BETWEEN TO_DATE (:dt_maj_deb, 'DD/MM/YYYY')
AND TO_DATE (:dt_maj_fin, 'DD/MM/YYYY')";
$stmt = oci_parse($conn,$query);
$value = '01/01/2009';
oci_bind_by_name($stmt,':dt_maj_deb',$value);
$value = '01/02/2019';
oci_bind_by_name($stmt,':dt_maj_fin',$value);
oci_execute($stmt);
oci_fetch_all($stmt, $result);
var_dump($result);
oci_free_statement($stmt);
oci_close($conn);
Results
-------
array(1) {
["COL1"]=>
array(0) {}
}
나는 무엇이 부족합니까 ??
Alex에게 다시 한번, 나는 처음으로 oci 라이브러리에 속아 넘어졌다 ... 나는 그것이 마지막 이었으면 좋겠다. :) –