我正在使用带有此SQL代码的预准备语句:
SELECT `name` FROM `securities` WHERE `symbol`=? AND `type`=`C`
但执行时我不断收到此错误:
Column not found: 1054 Unknown column 'C' in 'where clause'
表格设置如下:
+--------+-----------------------+------+------+
| symbol | name | type | used |
+--------+-----------------------+------+------+
| AED | UAE Dirham | C | 0 |
| ALL | Albanian Lek | C | 0 |
| ANG | Neth Antilles Guilder | C | 0 |
| ARS | Argentine Peso | C | 0 |
| AUD | Australian Dollar | C | 0 |
| AWG | Aruba Florin | C | 0 |
| BBD | Barbados Dollar | C | 0 |
| BDT | Bangladesh Taka | C | 0 |
| BGN | Bulgarian Lev | C | 0 |
| BHD | Bahraini Dinar | C | 0 |
+--------+-----------------------+------+------+
我正在尝试从中查询 名称。我该如何解决这个错误?涉及绑定值的代码太长而无法发布,但基本上,它使用array($symbol)
执行预准备语句。是否存在我错过的SQL错误?
答案 0 :(得分:3)
您在反引号中附加了值C
。这应仅针对列名和表名进行,而不是对值进行。
将其更改为引号,它应该有效:
SELECT `name` FROM `securities` WHERE `symbol`=? AND `type`='C'
答案 1 :(得分:2)
反引号中的内容被假定为MySQL中的列/表名。你要求MySQL做的是返回所有行,其中type列中的值与C列中的值相同,你真正想要的是单引号(或双引号)。即
SELECT `name` FROM `securities` WHERE `symbol`=? AND `type`='C'