我已经下载了一个包含大量代码和表的源代码,在其中一个表中我得到了一个名为“int”的列(源代码很大,更改列名不适合我)。< / p>
无论如何,由于列名,我无法在我的网站上打印数据!除了列'int'之外,表中的任何其他列都可以工作。它告诉我这个错误:
您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第1行的'int FROM characters WHERE id ='30005''附近使用正确的语法。
我试着像这样选择它:
"SELECT int FROM characters WHERE id = '" + userId + "'";
我试过这样:
string selectIntSql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'moopledev' AND TABLE_NAME = 'characters' AND ORDINAL_POSITION = 11";
string selectInt = SqlConnector.printData(selectIntSql);
"SELECT " + selectInt + " FROM characters WHERE id = '" + userId + "'";
没有任何效果。 知道该怎么办吗?
答案 0 :(得分:4)
SQL(任何SQL)都包含保留字,最好不要将其用作列名。 INT非常明显。
解决这个问题的方法是:
反推示例:
`int`
答案 1 :(得分:3)
int是一个关键字,因此您必须使用反引号将其转义。
"SELECT `int` FROM characters WHERE id = '" + userId + "'";
答案 2 :(得分:3)
如果您使用保留关键字作为列或表名称 你必须用这样的反引号引用它们:
"SELECT `int` FROM characters WHERE id = '" + userId + "'";