PHP PDO и предложение IN - PullRequest
       3

PHP PDO и предложение IN

1 голос
/ 14 июня 2011

У меня есть заявление, используемое с 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 ]

4 голосов
/ 14 июня 2011

$stmt->fetch выбирает только одну строку за раз. Используйте fetchAll , чтобы вернуть весь набор результатов

3 голосов
/ 14 июня 2011

Похоже, вы звоните fetch только один раз. Это означает, что вы получаете первую строку из запроса и не более.

Попробуйте:

$stmt->fetchAll(PDO::FETCH_ASSOC);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...