原始查询没有输出

时间:2016-04-13 07:40:59

标签: php laravel-5.2

您可以在这个没有输出的原始查询上寻求帮助,

select s.name+'.'+o.name
from sys.objects o
JOIN sys.schemas s
ON o.schema_id=s.schema_id
where type IN ('U')
and modify_date > '20160404'

但是如果我会手动这样做,它可以正常工作..

   $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 );

但是当我手动执行此操作时,不会再次输出。

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

提前谢谢。

2 个答案:

答案 0 :(得分:0)

这是因为在你的绑定数组中,你需要很多参数 - SQL只需要一个,你提供两个。 一个适当的参数列表将是[implode(',',[12345,1111])]但在这种情况下它将是一个字符串,结果也不正确

这个怎么样?

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

答案 1 :(得分:0)

原始查询:

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

和Laravel查询:

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