Связывание параметров с помощью $ pdoObject-> execute () работает, но bindValue () не работает - PullRequest
0 голосов
/ 10 октября 2019

bindValue() не работает, но запрос работает хорошо, если я жестко связываю его или использую:

$pdo->execute([':s_dt'=>$a, ':e_dt'=>$b]);

В чем разница между ними?

Я не могупоказать вам некоторую информацию, поэтому я изменил имя значений и таблиц.

Это запрос:

select *
from (     
    select *, max(p) as tt
    from  a, c, b 
    where 1=1
            and c.cb=b.cb
            and c.a=b.a
            and dt >= :s_dt
            and dt <= :e_dt
            and a.t = "t"
            and a.s= "1"
            and a.cn= c.cn
            and a.a1=c.a1_n
            and a.a2=c.a2_n                 
            and (b.ct = 1 or b.ct2 = 1 or b.ct3= 1 )
            group by a.ct, a.ct2 a.ct3, a.t, a.a                    
) t
where 1=1
    and (t.p-t.s)  <0                       
    order by d desc , g asc

Не работает PHP-код.

$query_pdo->bindValue(':s_dt', '2019-10-02', PDO::PARAM_STR);
$query_pdo->bindValue(':e_dt', '2019-10-10', PDO::PARAM_STR);
$query_pdo->execute();

Другой PHP-код, который работает.

$query_pdo->execute([':s_dt'=>'2019-10-02', ':e_dt'=>'2019-10-10']);
...