我是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();