PHP PDO and IN clause


PHP PDO and IN clause

我有一个与PDO一起使用的语句,如下所示:

$stmt = _DB::init()->prepare("SELECT a.*
                              FROM tax_class a
                              INNER JOIN products_to_tax_class pa 
                              ON a.tid = pa.tid
                              WHERE pa.pid IN (1,2)
                             ");

现在执行该语句,但是它只获取pa.pid = 2的结果,或者给定值的最后一个值。有人能为我解释一下吗?我期待着来自两个id's 1 and 2的一系列结果,但这只输出Array ( [tid] => 2 [rate] => 7.30 [name] => Something )

if ($stmt->execute())
          return $stmt->fetch(PDO::FETCH_ASSOC);

感谢

$stmt->fetch一次只获取一行。使用fetchAll返回整个结果集

看起来您只调用了fetch一次。这意味着您将从查询中获得第一行,而不是更多。

尝试:

$stmt->fetchAll(PDO::FETCH_ASSOC);