PDOStatement::fetch() のイメージはそれでよいと思います。ただし fetch() は(デフォルト設定では)次の行の取得に成功した場合、true ではなく行(レコード)の結果を配列で返します。
一方、PDOStatement::fetchColumn() は取得した次の行のうち、さらに指定された列(カラム)の値を抜き出して返すメソッドです。
▶ □△○♢☆
□△○♢☆
□△○♢☆
□△○♢☆
□△○♢☆
□△○♢☆ →fetch()→ □△○♢☆
▶ □△○♢☆
□△○♢☆
□△○♢☆
□△○♢☆
□△○♢☆ →fetchColumn(0)→ □
▶ □△○♢☆
□△○♢☆
□△○♢☆
□△○♢☆
つまり PDOStatement::fetchColumn(0)
は PDOStatement::fetch()[0]
と同義です。
大したことではありませんが、SELECT user_id FROM ...
などと1つのカラムを取得するときにコードが多少すっきり書けるメリットがあります。
php
1if (!$row = $stmt->fetch()) {
2 die('ユーザーがみつかりません!!');
3} else {
4 $user_id = $row[0];
5}
6
7if (!$user_id = $stmt->fetchColumn()) {
8 die('ユーザーがみつかりません!!');
9}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/01 11:51