в моем хранилище у меня есть
public function findAllMorosos($date = 'now')
{
$datetime = new \Datetime($date);
$stmt = $this->getEntityManager()
->getConnection()
->prepare(self::sql_morosos);
$stmt->bindValue(':fecha', $datetime, 'datetime');
if ($stmt->execute()) {
return $stmt;
}
return null;
}
мой SQL-запрос
-- SQL
select p.* from inf_pago p
join inf_venta v on v.id = p.venta_id
join inf_cliente c on c.id = v.cliente_id
where p.fecha_pago < ':fecha'
and DATEDIFF(':fecha', p.fecha_pago) >= 30
and p.saldo_por_pagar != 0
когда я выполняю $repository->findAllMorosos()
я получаю пустой массив (ожидается 1 строка), запрос в порядке.
когда я пытаюсь:
public function findAllMorosos($fecha = 'now')
{
$datetime = new \Datetime($fecha);
$stmt = $this->getEntityManager()
->getConnection()
->prepare(str_replace(':fecha', $datetime->format('Y-m-d'), self::sql_morosos));
if ($stmt->execute()) {
return $stmt;
}
return null;
}
отлично работает.
может объяснить, что не так с методом bindValue
, документация и больше документов недостаточно