gpt4 book ai didi

mysql IN 子句不接受字符串变量

转载 作者:行者123 更新时间:2023-11-29 04:23:27 25 4
gpt4 key购买 nike

我有一个 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 的格式正确为字符串。

请指教

最佳答案

您的问题是您的 IN 子句的值需要像 WHERE whatever IN ('one','two','three') 这样引用向前。您可以使用 $fuel = "'"解决这个问题。内爆(“','”,$燃料)。 “'”;。不过请注意,如果您根据所有可能的值进行选择,为什么不在这种情况下将 AND fuel IN 完全排除在查询之外呢?

关于mysql IN 子句不接受字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17136301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com