我是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";
),它就会被执行。
我无法弄清楚这个问题。需要帮助。
答案 0 :(得分:1)
你应该这样做
$city = City::where('name', 'LIKE', $cityname."%")->firstOrFail();
或强>
$city = City::where('name', 'LIKE', "{$cityname}%")->firstOrFail();
而不是
$city = City::where('name', 'LIKE', "$cityname%")->firstOrFail();