FC2ブログ

サラリーマンのすらすらIT日記

IT関連を中心とした日々を綴ります。
2012/04/21

PHP−読み出したDBの各フィールドに対して関数を実行する

PHPでDBデータを読み出した後、各フィールドに対して関数を施したいことがありました。こんな感じです。

$rs = pg_query($conn, "select * from hogehoge limit 1");
while($row = pg_fetch_assoc($rs)) {
$field1 = mb_convert_encoding($row["field1"], "UTF-8", "EUC-JP");
$field2 = mb_convert_encoding($row["field2"], "UTF-8", "EUC-JP");
$field3 = mb_convert_encoding($row["field3"], "UTF-8", "EUC-JP");
}

以前はフィールドの個数が少なかったため、1行ずつ全部書いても大した量ではなかったのですが、今回20個以上のフィールドだったので、何かいい方法はないかとPHPの公式ドキュメントを見ながら考えました。foreachを使う?listを使う?arrayのある関数を使う?

しばらくして見つけたサイトがforeachに関する記事。foreachで参照渡しを使うとうまくいきそうです。で、書き換えたのがこれ。

$rs = pg_query($conn, "select * from hogehoge limit 1");
while($row = pg_fetch_assoc($rs)) {
foreach($row as $key => &$value) {
$value = mb_convert_encoding($value, "UTF-8", "EUC-JP");
}
unset($value);
}

これでうまくいきました。

スポンサーサイト

コメント

コメントの投稿

  • URL
  • コメント
  • パスワード
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL:http://sookibizviz.blog81.fc2.com/tb.php/1172-6443b5a3

■  カレンダー

07 | 2019/08 | 09
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

■  プロフィール

sookibizviz

Author:sookibizviz
仕事の内容やソフトの紹介を交えながら、日々の悪戦苦闘を綴っていきます。

■  最新記事

■  最新コメント

■  最新トラックバック

■  月別アーカイブ

■  カテゴリ

未分類 (64)
BizViz (24)
IT (1119)
計量 (76)
環境 (26)
数学 (181)
ニュース (46)
本 (187)
音楽 (113)
囲碁 (5)
将棋 (26)
ブログ (14)
日記 (19)

■  FC2カウンター

■  検索フォーム

■  RSSリンクの表示

■  QRコード

QRコード