我对 IN 子句有这个奇怪的问题
变量 $fuel 来自对这个 php 页面的 Ajax 调用。
$fuel = $_REQUEST['fuel'];
var_dump($fuel) = 'gas' ( for instance)
现在,当在发起 Ajax 调用的 php 页面中未选择 $fuel 时,我需要使用以下代码为 $fuel 插入所有可能的值:
if($fuel=='none'){
$fuel=array('gas','diesel','hybrid','electric');
$fuel=implode(',',$fuel);
}
这是查询。当值直接来自 Ajax 调用时,它可以正常工作,例如,当 $fuel = 'gas' 时。
但是当我的 IF 子句生成 $fuel 并且是 $fuel = 'gas,diesel,hybrid,electric' 时,它给了我一个空集。
SELECT * FROM vprice_range WHERE (power >= $power)
AND (price BETWEEN $low AND $high)
AND (fuel IN ('$fuel'))
AND (mileagemix < $mileage)
AND (emission_co2 < $co2)
AND (trunk >= $trunk)
这可能无关紧要,但请注意 FIELD 'fuel' 是一个 ENUM 字段('gas','diesel','hybrid','electric')
据我所知 $fuel 被正确格式化为字符串。
请指教