使用PHP PDO查询中传递的变量

使用PHP PDO查询中传递的变量,php,mysql,variables,pdo,Php,Mysql,Variables,Pdo,我问了几分钟的问题,从以下代码中得到了帮助: $uid = $_SESSION['uid']; $sth = $db->prepare("SELECT groupid FROM user_groups WHERE userid=?"); $sth->execute(array($uid)); $sth->execute(); $results = $sth->fetchAll(PDO::FETCH_COLUMN, 0); $results = implode(",",

我问了几分钟的问题,从以下代码中得到了帮助:

$uid = $_SESSION['uid'];
$sth = $db->prepare("SELECT groupid  FROM user_groups WHERE userid=?");
$sth->execute(array($uid));
$sth->execute();

$results = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
$results = implode(",",$resultas);
echo $results;
这样的输出:11,13。谢谢你的帮助:)

现在,我想在另一个pdo查询中使用此变量,并尝试以下操作:

$stmt = $db->query('SELECT * FROM menu WHERE gruppe=0 OR gruppe in (?'
    . ') ORDER BY reihe, parentId, name ');
$stmt->execute(array($results));
但是没有结果。。。但是当我尝试这个的时候

$stmt = $db->query('SELECT * FROM menu WHERE gruppe=0 OR gruppe in (11,13'
    . ') ORDER BY reihe, parentId, name ');
$stmt->execute();

这不一样吗?关于这一点,您能给我另一个提示吗?

您应该在一个查询中执行此操作,因为您需要单独绑定所有值,否则:

SELECT * FROM menu
  WHERE gruppe=0 OR gruppe IN (SELECT groupid FROM user_groups WHERE userid=?)
  ORDER BY reihe, parentId, name

gruppe
是一个保留字。英雄联盟grin@Fred-一点德语是不会有坏处的:)@Rizier123 Si signoreRR@Rizier123很明显,你从来没有学过;-)请注意,如果您需要在两个单独的查询中执行此操作,则它只是一个副本。我投票决定结束,因为一开始这是一个无法阅读的混乱局面:-)