クエリが実行される前後にフェッチ モードを設定できるのに、結果が指定されたフェッチ モードを使用する理由について疑問に思っています...?
これは、PDO がクエリ結果を数値とアソシエーションの両方として db サーバーから取得することを意味しますか? うーん...
1つだけ取得することはできますか..? 数値結果または関連結果のどちらか?
これらの 2 つの例は、まったく同じ結果を返します。setFetchMode
数値と関連結果の両方を省略すると、出力されます。
実行前
$sth = $dbh->prepare("SELECT REFERENCED_TABLE_NAME table_name, REFERENCED_COLUMN_NAME column_name\n"
."FROM KEY_COLUMN_USAGE\n"
."WHERE REFERENCED_TABLE_NAME IS NOT NULL && REFERENCED_COLUMN_NAME IS NOT NULL\n"
."GROUP BY REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME");
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->execute();
echo '<pre>';
foreach($sth as $row){
print_r($row);
}
echo '</pre>';
実行後
$sth = $dbh->prepare("SELECT REFERENCED_TABLE_NAME table_name, REFERENCED_COLUMN_NAME column_name\n"
."FROM KEY_COLUMN_USAGE\n"
."WHERE REFERENCED_TABLE_NAME IS NOT NULL && REFERENCED_COLUMN_NAME IS NOT NULL\n"
."GROUP BY REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME");
$sth->execute();
$sth->setFetchMode(PDO::FETCH_ASSOC);
echo '<pre>';
foreach($sth as $row){
print_r($row);
}
echo '</pre>';