PHP PDO来自查询

时间:2014-02-14 07:37:25

标签: php sql pdo

我正在尝试在PHP PDO中进行查询,它将获取一个简单的结果。因此,在我的查询中,我需要它来查找列组为“Admin”的行,并显示组列中的内容。我知道我们已经知道应该是什么[应该是管理员],但只需要让查询工作。它只占我桌子的一排,所以我需要forsearch吗?

如果我将WHERE group ='Admin'更改为WHERE id ='1',它可以正常工作。但我需要它,所以它可以是group ='admin'

$sql2 = "SELECT * FROM groups WHERE group = 'Admin'";
$stm2 = $dbh->prepare($sql2);
$stm2->execute();
$users2 = $stm2->fetchAll();

foreach ($users2 as $row2) {
    print ' '. $row2["group"] .' ';
}

由于

2 个答案:

答案 0 :(得分:1)

group是MySQL中的一个保留字,这就是为什么它不起作用。通常,对列和表名使用保留字是个坏主意。 尝试在查询中围绕组使用反引号来解决此问题,所以:

$sql2 = "SELECT * FROM groups WHERE `group` = 'Admin'";

此外,您应该使用占位符作为值,因为您已经使用了预处理语句,这只是一个小小的改动。

编辑:只是为了澄清我关于占位符的最后一句话。我的意思是这样的:

$sql2 = "SELECT * FROM groups WHERE `group` = ?";
$stm2->execute(array('Admin'));

答案 1 :(得分:0)

尝试在WHERE子句中使用wildcard

$sql2 = "SELECT * FROM groups WHERE group LIKE '%Admin%'";

由于表中的值实际上不是Admin而是Administrator,因此使用LIKEwildcard会搜索包含admin的记录。