Laravel: пустые результаты с необработанным запросом с параметрами привязки - PullRequest
0 голосов
/ 20 февраля 2020

Мне нужно получить некоторые данные в laravel, используя базу данных вторичного соединения в SQL Сервер.

Мой код такой:

        DB::connection('sqlsrv')->enableQueryLog();
        $clstamp = DB::connection('sqlsrv')
                    ->table('cl')
                    ->select('clstamp','ncont','no')
                    ->where("ncont", "507751167")
                    ->get();

        dd(DB::connection('sqlsrv')->getQueryLog(),$clstamp );

Результат:

result of this code

Когда я удаляю строку «-> где», появляются мои данные. Я уверен, что мой SQL запрос в порядке, я пытался в SQL Server Management Studio.

Что я делаю не так? Каков наилучший метод для создания запросов и привязок с моделью, которая не контролирует мою laravel структуру / миграции? эта SQL база данных сервера является внешней, мне нужно только извлечь данные.

Моя простая модель:

class PHC_cl extends Model
{
    //
    protected $connection= 'sqlsrv';
    protected $guarded = [];
    protected $primaryKey = 'clstamp';
    protected $table = 'cl';
}

Если я удалю строку -> where (), она выведет данные нормально - массив-> 663 itens данные в порядке

Я уже пробовал использовать whereRaw, помещая условие между '....', но всегда возвращаю пустое.

Мой код для других метод:

        DB::connection('sqlsrv')->enableQueryLog();
        $sql = "
        SELECT clstamp,ncont,no
        FROM CL
        WHERE ncont like :ncont
        ";
        $clstamp = DB::connection('sqlsrv')->select(DB::raw($sql),[
            'ncont' => $data['nif']
        ]);
        dd(DB::connection('sqlsrv')->getQueryLog(),$clstamp );

Мои $ data ['nif] равны' 507751167 ', и результат таков: результат БД: raw

1 Ответ

0 голосов
/ 21 февраля 2020

обновить код до:

   DB::connection('sqlsrv')->enableQueryLog();
    $clstamp = DB::connection('sqlsrv')
                ->table('cl')
                ->select('clstamp','ncont','no')
                ->where('ncont','=', '507751167')
                ->get();

    dd(DB::connection('sqlsrv')->getQueryLog(),$clstamp );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...