Когда я запускаю следующий запрос в phpMyAdmin
SELECT
locations.name,
locations.id,
locations.lon,
locations.lat,
locations_categories.category_id as catId,
locations_categories.location_id as locId,
haversine(40,90,locations.lon,locations.lat) as distance
FROM locations_categories, locations
WHERE locations.id = locations_categories.location_id
AND locations_categories.category_id IN ("9","1","7")
ORDER BY `distance` ASC
Это дает мне следующие правильные результаты:
Но когда я запускаю следующее в своем приложении Laravel, оно возвращает только местоположения с catId, равным 9.
// dump($request->categories);
$categories = implode('","',$request->categories);
//dd($categories);
$statement = <<<'ENDSTATEMENT'
SELECT
locations.name,
locations.id,
locations.lon,
locations.lat,
locations_categories.category_id as catId,
locations_categories.location_id as locId,
haversine(?,?,locations.lon,locations.lat) as distance
FROM locations_categories, locations
WHERE locations.id = locations_categories.location_id
AND locations_categories.category_id IN (?)
ORDER BY `distance` ASC
ENDSTATEMENT;
$locations = DB::select($statement, array($request->lon, $request->lat, $categories));
Результаты
dd($categories);
- это следующий снимок экрана
Мой вопрос: почему это работает и возвращает все значения, необходимые в PhpMyAdmin, но не при запуске в приложении ??