2016-04-13 11 views
0

hiçbir çıkış,Ham sorgular Merhaba bu çıkış yok bu ham sorguya biraz yardım isteyebilirsiniz

$userproj_id = UserProject::select('projid')->where('user_id', $id)->get()->toArray(); 
     $flattenid = array_flatten($userproj_id); 
     foreach ($flattenid as $projid) { 
      $projidarr [] = $projid; 
     } 


    $users = DB::select('select * from project where projid in (?) and user_id = 3 ', $projidarr); 

ama elle böyle yapacak olursa, iyi çalışıyor ..

$users = DB::select('select * from project where projid in (?) and user_id = 3 ', ['12345']); 

ama bunu elle yaptığımda tekrar çıkış yok.

$users = DB::select('select * from project where projid in (?) and user_id = 3 ', ['12345','11111']); 

Şimdiden teşekkür ederiz.

+0

http://stackoverflow.com/a/35725251/4248472? – Zimmi

cevap

0

Bunun nedeni, bağlama dizilerinizde birçok parametreye sahip olmanızdır - SQL'in yalnızca bir tane ihtiyacı vardır ve iki tane sağladınız demektir. Uygun bir parametre listesi [implode (',', [12345, 1111])] olacaktır, ancak bu durumda bir dize olur ve sonuç da doğru olmaz.

Bu konu hakkında ne düşünüyorsunuz?

DB::table('project') 
->whereIn('projid', [12345, 1111]) 
->where('user_id', '=', 3); 
0

Ham Sorgu:

$users = DB::select('select * from project where projid in ('. implode(',', $projidarr).') and user_id = 3 '); 

ve laravel sorgusu:

DB::table('project') 
->whereIn('projid', $projidarr) 
->where('user_id', '=', 3);