5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PDOで1xNのデータをDBから取得するなら

Posted at

1xNって表現でいいのか自信ありませんが、要はSELECT txt FROM HogeみたいなSQLで取ってこれる、1行あたりカラム数が1のデータのことです。
PDOで素直にPDO::FETCH_NUMで取ってくると、

<?php
$pdo = new PDO('...');
$stmt = $pdo->query('SELECT txt FROM Hoge');
var_dump($stmt->fetchAll(PDO::FETCH_NUM));

//[ [txt1], [txt2], [txt3], ... ]

配列の配列になってしまい、冗長です。

こんなとき、FETCH_COLUMNでfetchすると、カラムを一つだけ取ってくるようになるので、配列が1段消えて扱いやすくなります。

<?php
$stmt = $pdo->query('SELECT txt FROM Hoge');
var_dump($stmt->fetchAll(PDO::FETCH_COLUMN, 0));

//[ txt1, txt2, txt3, ... ]

//こうしてもOK
$stmt = $pdo->query('SELECT txt FROM Hoge');
$stmt->setFetchMode(PDO::FETCH_COLUMN, 0);
var_dump($stmt->fetchAll());

FETCH_COLUMNの引数は0から始まるカラムの番号です。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?