我有一个与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);
由于
答案 0 :(得分:4)
$stmt->fetch
一次只能获取一行。使用fetchAll返回整个结果集
答案 1 :(得分:3)
看起来您只需拨打fetch
一次。这意味着您将从查询中获取第一行,而不再是。
尝试:
$stmt->fetchAll(PDO::FETCH_ASSOC);