2013-10-08 47 views
1

我有以下SQL执行:比较花车,PHP

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

如果我与一些替代$floatUsdTrigger,它按预期工作;但它无法与我的$floatUsdTrigger变量一起使用。这个变量是float,当作string,当我做vardump时,它看起来是正确的,例如(float) 120.00

我的trigger_pricevarchar[10],就像我说的很好,当我用$floatUsdTrigger替换一个数字;有任何想法吗?

我做了大量的研究,找不到答案;作为一名客观的C开发人员,我发现PHP有时会非常“松散”。

回答

4

您正在使用->prepare,不要使用此变量插值!

做这样的:

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

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

非常感谢为输入,感谢一如既往。 – Woodstock

+0

不客气:--D –

2

$ floatUsdTrigger var不会在单引号内分析。如果你回显那个字符串,你会看到这个。

建议:对整个字符串使用双引号,并在作为查询一部分的文本值周围使用单引号。

+0

非常感谢输入 – Woodstock