SQL - SELECT with WHERE语句返回false,尽管表中存在当前字段

时间:2015-02-24 23:35:59

标签: mysql mamp where-clause

我对此非常困惑(返回false):

$sql = "SELECT * from tbl_user WHERE group = 'abc'";
$res = mysql_query($sql);

if(mysql_num_rows($res) > 0) {          
    $response = array('status' => '1');
} else {
    $response = array('status' => '0'); // ---> what I get back
    die("Query failed");
}

...尽管mySQL数据库中存在字段 group 。更奇怪的是,以下返回的值:

$SQL = "SELECT * FROM tbl_user";
$result = mysql_query($SQL);
while ($db_field = mysql_fetch_assoc($result)) {
    print $db_field['group']; // ---> returns 'abc'

当我在除了组之外的表的每个其他字段执行WHERE子句时(例如,WHERE name =' ex1' AND ID = 1 AND isAllowed = 0(依此类推......),所有内容很好。一旦我插入 =' abc',我什么都没得到......

这让我很生气。如果有人可以提供帮助......(我正在使用MAMP运行本地服务器)。

非常感谢!

1 个答案:

答案 0 :(得分:0)

问题是group是SQL中的保留字。

对于MySql,您需要使用反引号将其转义

`group`

所以你的查询将是

$sql = "SELECT * from tbl_user WHERE `group` = 'abc'";