Я не могу сразу сказать, что не так с этим построителем запросов, однако, проверьте это для целей отладки.
После вызова execute()
в вашей цепочке БД попробуйте это.
echo Database::instance()->last_query;
В обычном SQL будет показан последний выполненный запрос. Стоит посмотреть, что сгенерировал построитель запросов, и чем он отличается от вашего SQL, который вы использовали в phpmyadmin.
Если ничего не помогает, просто используйте простые методы запроса.
$query = "SELECT units . * , locations . *
FROM units, locations
WHERE units.id = :id
AND units.location_id = locations.id
LIMIT 0 , 30 ";
$unit = Db::query(Database::SELECT, $query)
->bind(':id', (int) $id)
->execute()
->as_array();