У меня сегодня странная проблема, связанная с функцией oci_bind_by_name
, которую я использую в PHP.
Позвольте мне дать вам витрину.
Вот таблица с простыми датами:
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'));
Запуск этого запроса приведет к 2 строкам, если я свяжу :dt_maj_deb
и :dt_maj_fin
с 01.01.2009 и 01.02.2009, например:
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) {}
}
Что мне не хватает ??