当整数用作条件时,mysqli php查询返回布尔值

时间:2015-08-11 05:03:57

标签: php mysqli

我有一个MySQL php查询,当字符串用作条件时将返回一个值,但在使用整数时返回false。 这很有效,

    SELECT field FROM table WHERE name='john';

这不是

    SELECT field FROM table WHERE index='1';

这是一个有问题的行的例子

    |index(int)|Name(varchar)|Field(varchar)|
    |   1      |    john     |    data      |

查询整数是否存在固有问题?有人有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在您的情况下,表名中的“索引”将被视为保留关键字

在MySQL中,存在很多特殊字符或保留字。每次使用其中一个时,都必须使用反引号

反引号用于表和列标识符,但仅在标识符为MySQL reserved keyword时,或者当标识符包含空格字符或超出有限集的字符时才需要(见下文)。通常建议使用尽可能避免使用保留关键字作为列或表标识符,避免引用问题。

According to MySQL documentation,您不需要使用以下字符集引用(反引号)标识符:

  

ASCII:[0-9,a-z,A-Z$_](基本拉丁字母,数字0-9,美元,下划线)

您可以使用超出该组的字符作为表或列标识符,例如包括空格,但是必须引用(反引号)它们。

在你的情况下使用`index`(反引号!)而不是索引应该工作