2013-10-08 79 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