我有以下SQL正在执行:

$query = $pdo->prepare('SELECT * FROM active_notifications WHERE direction = ">"
AND trigger_price > "$floatUsdTrigger" ');

如果我用一个数字替换$floatUsdTrigger,它将按预期工作;但是它无法使用我的$floatUsdTrigger变量。这个变量被转换成float,当我做string时,它看起来是正确的,例如vardump
我的(float) 120.00是一个trigger_price,就像我说的,当我用一个数字替换varchar[10]时就可以了;有什么想法吗?
我做了大量的研究,但找不到答案;作为一个客观的C开发人员,我发现PHP有时会变得非常“松散”。

最佳答案

您使用的是->prepare,请不要使用变量插值!
这样做:

$query = $pdo->prepare('SELECT * FROM active_notifications WHERE direction = ">" AND trigger_price > ?');
$query->execute(array($floatUsdTrigger));

while($row = $query->fetch()){
    // var_dump($row);
}

07-26 09:34