1

次のSQLを実行しています。

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

$floatUsdTrigger数値に置き換えると、期待どおりに機能します。ただし、私の$floatUsdTrigger変数では機能しません。この変数はfloatとしてキャストされ、 astringを実行するvardumpと正しく見えます(float) 120.00

trigger_priceは であり、私が言ったように、 を数字varchar[10]に置き換えても問題ありません。$floatUsdTrigger何か案は?

私はかなりの量の調査を行いましたが、これに対する答えが見つかりませんでした。オブジェクティブ C 開発者として、私は PHP が腹立たしいほど「ルーズ」であることに気付きます。

4

2 に答える 2

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);
}
于 2013-10-08T17:26:13.490 に答える
3

$floatUsdTrigger 変数は、一重引用符内では解析されません。その文字列をエコーアウトすると、これが表示されます。

提案: 文字列全体に二重引用符を使用し、クエリの一部であるテキスト値を一重引用符で囲みます。

于 2013-10-08T17:23:13.473 に答える