【发布时间】:2016-05-23 16:56:06
【问题描述】:
在 Laravel 5.2 DB 语句中使用 MySQL 的 IN 函数时遇到问题。示例如下:
$str_array = implode(",",$array_reservations);
$sql_result = DB::select("
select r.id,r.people,r.date,r.status,p.alias,u.name,p.profile
from reservations r inner join places p on p.id = r.place_id
inner join users u on u.id = r.user_id
where r.id in(?)
order by r.date desc
", [$str_array]);
但是在结果中我只是得到了数组第一次保留的结果。
数组的长度总是可变的。
【问题讨论】:
-
你试过
DB::raw($query);吗?? -
就像@P.Gearman 指出的那样;参考:stackoverflow.com/questions/26465243/…
-
您不能对整个 IN 列表使用单个绑定占位符,您必须为每个元素使用单独的占位符,并将
$array_reservations作为数组传递,而不是作为逗号分隔的字符串
标签: php mysql laravel laravel-5