как получить набор результатов php PDO QUERY в одном массиве вместо вложенного в один - PullRequest
1 голос
/ 23 октября 2010

Мне нужно было преобразовать запрос в соединение двух таблиц.

$q = "SELECT * FROM table1 AS a JOIN table2 AS b USING(id) WHERE a.id= $id";
$stmt = db::getInstance()->prepare($sql);
return $stmt->fetchAll(PDO::FETCH_ASSOC);

Внезапно я не могу обратиться к каждому значению строки с помощью $rows['value'] , Но мне нужно использовать $rows[0]['value'].

Как мне избежать этого поведения и получить значения в строке, не используя [0]?

Спасибо, Ричард

Ответы [ 2 ]

1 голос
/ 24 октября 2010

Если вы ожидаете только одну строку, используйте PDOStatement::fetch() вместо fetchAll().

0 голосов
/ 19 сентября 2013

Я использую следующее для возврата одной строки:

$SQL = "SELECT myColumn FROM myTable";
$STH = $DBH->prepare($SQL);
$STH->execute();
$row = $STH->fetch();
if ($STH->rowCount > 0) {
    $myColumn = $row['myColumn'];
}

И я использую это для возврата нескольких строк:

$SQL = "SELECT myColumn FROM myTable";
$STH = $DBH->prepare($SQL);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
if ($STH->rowCount() > 0) {
    while ($row = $STH->fetch()) {
        $myColumn = $row['myColumn'];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...