我会尽量简洁,只在这里显示相关信息:
我有两段几乎相同的代码,一段有效,另一段无效。
$query = $pdo->prepare("SELECT * FROM active_notifications WHERE direction = '>' AND $usdCurrent > trigger_price AND currency = '$'");
$query->execute();
var_dump($query);
$result = $query->fetchall((PDO::FETCH_ASSOC));
var_dump($result);
上面的代码有效,当我 var dump 查询时,它看起来像这样:
SELECT * FROM active_notifications WHERE direction = '>' AND 182.62000 > trigger_price AND currency = '$'
当我尝试使用稍微不同的代码时,我的问题出现了,我将 $ 符号换成 £ 符号
这是代码:
$query = $pdo->prepare("SELECT * FROM active_notifications WHERE direction = '>' AND $gbpCurrent > trigger_price AND currency = '£'");
$query->execute();
var_dump($query);
$result = $query->fetchall((PDO::FETCH_ASSOC));
var_dump($result);
当我 var dump 查询时,我得到以下信息:
SELECT * FROM active_notifications WHERE direction = '>' AND 114.19942 > trigger_price AND currency = '£'
所以到目前为止一切都是正确的,
当我直接在 PhpMyAdmin 中运行创建的查询时,会返回预期的结果,但是当我 var_dump £gbp 查询的 $result 时,我得到一个空数组。
起初我虽然可能是因为我正在重用变量名,但我完全隔离地尝试了这两种方法,USD 查询总是有效,而 GBP 永远不会有效,并且总是导致返回一个空数组。
就像我说的那样,生成的两个查询在 PhpMyAdmin 中都能正常工作(直接针对数据库运行时)
唯一的区别是,在一个查询中我有一个 £ 符号,而另一个我有一个 $ 符号,
£ 符号是 PHP 中不允许使用的符号还是类似的符号?
谢谢,约翰