запрос laravel не возвращает значения — странный pdo

Я столкнулся со странной проблемой, которая у меня возникла, и она действительно поставила меня в тупик. Я использую Laravel для создания своего веб-сайта, и я только что написал сценарий, который будет действовать как поисковая система. Он построен, а затем запустить.


Я просто управляю $query->get() с $query быть классом строителей Laravel. Это содержание запроса:


select * from (
select `l`.*, round(
d.distance_unit
* DEGREES(ACOS(COS(RADIANS(p.latitude))
* COS(RADIANS(z.latitude))
* COS(RADIANS(p.longitude - z.longitude))
+ SIN(RADIANS(p.latitude))
* SIN(RADIANS(z.latitude)))),
2
) AS distance, `d`.`radius` from `listings` as `l`
inner join `horses` as `x` on `x`.`id` = `l`.`listing_id`
inner join `suburbs` as `z` on `z`.`id` = `l`.`suburb_id`
inner join (select 50 as radius, 111.045 as distance_unit) as d on 1 = 1
inner join `suburbs` as `p` on `p`.`id` = 1
where (
`z`.`latitude` between
?
and
?
and `z`.`longitude` between
?
and
?
)
) as sub
where `distance` <= `radius`
order by `created_at` desc
limit 9 offset 0

Привязки запроса:

[bindings] => Array
(
[0] => Illuminate\Database\Query\Expression Object
(
[value:protected] => p.latitude  - (d.radius / d.distance_unit)
)

[1] => Illuminate\Database\Query\Expression Object
(
[value:protected] => p.latitude  + (d.radius / d.distance_unit)
)

[2] => Illuminate\Database\Query\Expression Object
(
[value:protected] => p.longitude - (d.radius / (d.distance_unit * COS(RADIANS(p.latitude))))
)

[3] => Illuminate\Database\Query\Expression Object
(
[value:protected] => p.longitude + (d.radius / (d.distance_unit * COS(RADIANS(p.latitude))))
)

)

Это запрос, который запускает laravel. Когда я печатаю sql. но я не могу на всю жизнь выяснить, почему он не возвращает значение, когда SQL, который я запускаю в phpmyadmin, делает. (Все, что я делаю, это добавляю привязки к знакам вопроса и запускаю в phpmyadmin). Я пришел к выводу, что PDO laravels должен делать что-то по-другому или присоединяться к ним по-другому. Я использую DB::raw() метод для каждого из этих значений.

1

Решение

Мне удалось найти мою проблему, настроив my.ini для сервера MySQL. Я повернулся general_log_file = "queries.log" под [mysqld] на. Потом работает SET global general_log = 1; в MySQL.


Это показало мне проблему с моим запросом. Привязки вставлялись в кавычки, хотя я использовал DB::raw() , Так что мне просто нужно найти способ их удалить.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]