在Laravel 5.2中,没有在SQL查询中设置PHP数组值


Not setting an PHP array value inside a SQL query in 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";),它就会被执行。

我搞不清楚这个问题。需要帮助。

您应该执行此

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

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

而不是

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