PHP PDO - Лучшая практика для отображения запроса выбора, который имеет уникальную запись - PullRequest
1 голос
/ 30 марта 2012

Я хочу повторить запись запроса 'select min'.Я знаю, как выполнить вывод значений полей запроса на выборку, который извлекает несколько записей, но я не знаю, как действовать, когда извлекается только одна запись.Надеюсь, что кто-нибудь может поблагодарить меня за лучшую практику, когда будет извлечена только одна запись.Заранее спасибо.Приветствия.Марк

В случае нескольких записей я знаю, как поступить:

$qry = $connexion->query('SELECT * FROM table');
$qry->setFetchMode(PDO::FETCH_ASSOC);
while($row = $qry->fetch()){
    echo $row['field1'].$row['field2'];
    }

Но когда возвращается только одна «запись», что является лучшим методом?

$qry = $connexion->query('SELECT min(field) FROM table');
???

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

Вы можете просто вызвать fetch вне цикла, поскольку вы знаете, что нужно извлечь только одну строку.

$qry = $connexion->query('SELECT min(field) AS minimum FROM table');
$qry->setFetchMode(PDO::FETCH_ASSOC);

$row = $qry->fetch();
$min = $row['minimum'];

// the two lines above can be condensed into one in PHP >= 5.4.0:
// $min = $qry->fetch()['minimum'];

В подобных случаях, когда естьне только одна строка, но и только один столбец, используйте fetchColumn для большего удобства:

$qry = $connexion->query('SELECT min(field) FROM table');
$min = $qry->fetchColumn(0);
1 голос
/ 30 марта 2012
$qry = $connexion->query('SELECT min(ber_mBatch_date) AS minimum FROM batcherrors');
$qry->setFetchMode(PDO::FETCH_ASSOC);
$row = $qry->fetch();
echo $row['minimum'];
0 голосов
/ 30 марта 2012
    $row = $qry->fetchColumn(0);
    echo $row;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...