プロが教える店舗&オフィスのセキュリティ対策術

macOS Mojave 10.14.5
mysql 8.0.16

データは 1 つしかないのですが、
以下のコードの、 count($row) は 10 です。
本来は 1 だと思っているのですが。

詳しい方おりましたら、ご教授下さい。
宜しく御願い致します。


( コード )
try {

$pdo = new PDO(DSN, USERNAME, PASSWORD);
// SQL 文を準備。
$sql = 'select * from movie';
$prepare = $pdo->prepare($sql);

$prepare->execute();

foreach ($prepare as $i => $row) {
echo 'count($row)--->>> ' . count($row);

echo $i % 4 === 0 ? '<div>' . PHP_EOL : null;
echo '<div class="pane">'. PHP_EOL . ($row['type']) . PHP_EOL . '</div>';
echo $i % 4 === 3 || $i === count($row) - 1 ?'</div>' . PHP_EOL : null;

}

} catch (Exception $e) {
echo $e->getMessage();
exit;
}


( テーブル一覧は以下のようになっています。)
+--------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+----------------+
| id | int(11) | NO | MUL | NULL | auto_increment |
| tag_01 | text | NO | | NULL | |
| tag_02 | text | NO | | NULL | |
| obj | text | NO | | NULL | |
| type | tinyint(1) | NO | | NULL | |
+--------+------------+------+-----+---------+----------------+

+----+--------+--------+---------+------+
| id | tag_01 | tag_02 | obj | type |
+----+--------+--------+---------+------+
| 1 | A | B | http:// | 123 |
+----+--------+--------+---------+------+

A 回答 (1件)

これは行数をかぞえていませんね


列数を数えています

列数が5なのでassocしていないので2倍の10が返ります

$sql = 'select * from movie';
$stmt = $pdo->prepare($sql);
$stmt->execute();
$row=$stmt->fetch();
print_r($row);
とするとなぜ10なのか分かるでしょう
    • good
    • 0
この回答へのお礼

ご回答頂き大変ありがとうございました。
勉強になりました。

お礼日時:2019/07/07 10:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!