不在Laravel 5.2中的SQL查询中设置PHP数组值

时间:2016-04-01 03:46:36

标签: php sql laravel-5.2

我是Laravel的初学者。我在SQL查询语句中使用PHP数组值时遇到了问题。 我有一个数组$waypoints,它包含城市的名称。 var_dump($waypoints)如下所示。

array (size=4)
0 => string 'Paris' (length=5) 
1 => string 'Moscow' (length=6) 
2 => string 'London' (length=6) 
3 => string 'New York' (length=8)

我正在尝试通过执行SQL查询来查找城市的相应id。代码如下。

    $cityname = $waypoints[2];

    $city = City::where('name', 'LIKE', "$cityname%")->firstOrFail();

此查询未执行。

var_dump($city)是这样的。

string 'select * from 'cities' where 'name' LIKE ? ' (length=42)

但是如果我手动将字符串值设置为变量$cityname(例如$cityname = "London";),它就会被执行。

我无法弄清楚这个问题。需要帮助。

1 个答案:

答案 0 :(得分:1)

你应该这样做

 $city = City::where('name', 'LIKE', $cityname."%")->firstOrFail();

 $city = City::where('name', 'LIKE', "{$cityname}%")->firstOrFail();

而不是

 $city = City::where('name', 'LIKE', "$cityname%")->firstOrFail();