PHP PDO和IN子句

时间:2011-06-14 18:28:46

标签: php mysql pdo

我有一个与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);

由于

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

看起来您只需拨打fetch一次。这意味着您将从查询中获取第一行,而不再是。

尝试:

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