CodeIgniterの学習 41 - CodeIgniterをVersion1.7.0にアップしたら、system/database/DB_utility.phpを修正しないとCSV出力が出来ない

勢いでCodeIgniterのバージョンを1.6.3から1.7.0にアップしたらCSVファイルの出力が出来なくなった。
(関連 CodeIgniterの学習 27 - CSVファイルをクエリから出力してみる。ついでにDB_utility.php内の出力形態の微調整 http://d.hatena.ne.jp/dix3/20081020/1224503986

ちなみにバージョンアップの方法は、効率よりも安全を取って、
後で混乱しないように地道にWinMergeで変更部分を目視で確認しながらファイルコピー&マージした。
(+hgで管理)

所用時間は60分位か。ソースの量は大したこと無いので、変更点は軽く眺めただけ。不具合あっても泣かない。


原因

ゆっくりやった結果がこれなので調べてみたら、

http://codeigniter.com/forums/viewthread/95597/ということらしい。

どうやら、$query->field_names()が廃止されて、$query->list_fields()のみになったのに、
DB_utility.php内の変更がされていなかったためみたい。


対処

というわけで、

system/database/DB_utility.php

      function csv_from_result($query, $delim = ",", $newline = "\n", $enclosure = '"')
      {
-             if ( ! is_object($query) OR ! method_exists($query, 'field_names'))
+             if ( ! is_object($query) OR ! method_exists($query, 'list_fields'))
      function xml_from_result($query, $params = array())
      {
-             if ( ! is_object($query) OR ! method_exists($query, 'field_names'))
+             if ( ! is_object($query) OR ! method_exists($query, 'list_fields'))

と2カ所修正してCSV出力を復活させた。


やっぱり Version1.7.1になるまで待った方が良かったかな?
他にも何か問題ないかなー?