Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.07.2016 10:47:56

Возвращаются не все записи из БД при простой выборке

Приветствую!
В laravel 5 создаю второе подключение к базе данных и пытаюсь вытянуть из базы данные простым select, типа:
DB::connection('connectionname')->select('select * from table');

Данные из базы получаю, но, как ни странно, почему-то не все. Часть записей, совершенно непонятно по какому принципу просто игнорируются и отсутствуют в выборке. Если подключаться к базе при помощи любого клиента (или через phpmyadmin, например), то получаю все данные. Никто не сталкивался с таким?

Причем, даже если целенаправленно получать одну запись, которая отсутствует в результатах выборки, например, так:
DB::connection('connectionname')->select('select * from table where id = ?', [$id]);
то ничего не возвращается в результате (count результирующего массива = 0).

Laravel 5, PHP 5.6.15, MySQL 5.1.12

Не в сети

#2 25.07.2016 10:50:14

Re: Возвращаются не все записи из БД при простой выборке

Может коннект не тот? Зачем имя соединения задаете — у вас их много?

Не в сети

#3 25.07.2016 10:51:12

Re: Возвращаются не все записи из БД при простой выборке

Да, необходимо соединение с несколькими БД - специфика системы, часть данных необходимо брать из другой базы. Коннект тот, потому что возвращается часть данных именно из нужной БД.

Изменено opv88 (25.07.2016 10:51:50)

Не в сети

#4 25.07.2016 10:58:42

Re: Возвращаются не все записи из БД при простой выборке

Ну чудес то не бывает, значит либо коннект не тот, либо запрос кривой…
Запиши в лог запросы, которые ларка выполняет, либо с помощью дебаг-бара какого-нить гляньте

Не в сети

#5 25.07.2016 11:04:50

Re: Возвращаются не все записи из БД при простой выборке

Чудес не бывает - это верно )
К сожалению, все это уже сделал... Запрос в логах корректный... По крайней мере тот же запрос в MySQL Workbench выдает верный результат - выводятся все записи. Вот уже голову сломал, почему так может происходить. Думал, м.б. со специфическими настройками может быть связано, к примеру, нехватка памяти или еще что... Хотя даже одна запись не выводится, именно игнорируется. Буду дальше думать... Спасибо.

Не в сети

#6 25.07.2016 15:42:51

Re: Возвращаются не все записи из БД при простой выборке

DB::connection('connectionname')->select('select * from table')->get(); не?

Не в сети

#7 25.07.2016 15:43:28

Re: Возвращаются не все записи из БД при простой выборке

а лучше DB::connection('connectionname')->table('table')->get();

Не в сети

#8 25.07.2016 15:48:31

Re: Возвращаются не все записи из БД при простой выборке

Не, с синтаксисом select все верно - уже нашел проблему.
Действительно, коннектилось к локальной базе почему-то, хотя в параметрах соединения был указан удаленный сервер. Была локально развернута база с тем же именем - в этом и была проблема. Снес ее - все данные стали нормально вытягиваться.
P.S. DB::connection('connectionname')->table('table') не оч подходит в данном случае, так как мне нужно определенные данные с удаленной внешней базы тащить, там не такой простой sql, выборка посложнее (несколько таблиц, их декартово произведение) и извращаться с методами тут смысла не вижу, быстрее и эффективнее sql-запрос. На основной базе понятно, что предложенный вариант лучше.
Всем спасибо за помощь. :-)

Изменено opv88 (25.07.2016 15:49:44)

Не в сети

#9 25.07.2016 16:12:17

Re: Возвращаются не все записи из БД при простой выборке

во народ усложняет.

Не в сети

Подвал раздела