テーブル定義情報を取得する為
$ethnadb =& $this->backend->getDB();
$a =& $ethnadb->getMetaData( $vv ); ←★
で、
参照渡しの戻り値の問題。出ない環境もあったので調べると
$ethnadb =& $this->backend->getDB();
$a =& $ethnadb->getMetaData( $vv ); ←★
で、
(NOTICE): global.getmetadata(class/DB/Ethna_DB_PEAR.php:220): [PHP] E_NOTICE: Only variables should be assigned by reference in /home/toshi/Ethna/Ethna-2.5.3/class/DB/Ethna_DB_PEAR.php on line 220メッセージが。
参照渡しの戻り値の問題。出ない環境もあったので調べると
PHP Version 4.4.8
Apache/2.2.3 (Unix)
Ethna-2.3.7
Ethna-2.5.0 preview3
Ethna-2.5.0 preview5
いずれでも再現。
PEAR のヴァージョンを疑い
PEAR 1.5.0 stable
PEAR 1.8.1 stable
PEAR 1.9.0 stable
いずれでも再現。
最終的に、PHP Version 4.4.8 → PHP Version 5.2.9 で改善。
PHP4で使わざるを得ない場合、Ethna_DB_PEAR:getMetaData() を変更すれば改善する。
Apache/2.2.3 (Unix)
Ethna-2.3.7
Ethna-2.5.0 preview3
Ethna-2.5.0 preview5
いずれでも再現。
PEAR のヴァージョンを疑い
PEAR 1.5.0 stable
PEAR 1.8.1 stable
PEAR 1.9.0 stable
いずれでも再現。
最終的に、PHP Version 4.4.8 → PHP Version 5.2.9 で改善。
PHP4で使わざるを得ない場合、Ethna_DB_PEAR:getMetaData() を変更すれば改善する。
: function &getMetaData($table){ $def =& $this->db->tableInfo($table); ←★ if (is_array($def) === false) { return $def; } :を
$def = $this->db->tableInfo($table);に。