QA@IT

PHP5 PEAR MDB2_Common::freeResult()関数の「Call to undefined function」エラー

3226 PV

■Webサーバー移転の為、次のようにOS/PHP等が変更・Version-Upになりました。
 サーバーOS:FreeBSD4.7-RELEASE-p11 → Red Hat Enterprise Linux 4
 Apache:1.3.42 → 2.0.64
 PHP:4.4.7 → 5.3.28
 PEAR:1.5.4 → 1.9.4
 MySQL:4.1.21 → 5.5.35

■この移転作業後、今迄問題のなかったMDB2_Common::freeResult() 関数(DBレコードをGetした結果セットを削除し、
 結果セットが使用していたメモリを開放する関数)で、トラブっています。
「$○○->freeResult($△△);」を実行すると、下記エラーメッセージが画面に表示されて止まってしまいます。
【エラーメッセージ】Fatal error: Call to undefined function: MDB2_Driver_mysql::freeResult().
          in /usr/local/php5.3/lib/php/MDB2.php on line 1936

 尚、$○○は該当DBオブジェクトのアドレス。$△△は、PEARのgetAllメソッドで取得したデータが入っている配列変数。
 MDB2.phpは、親プログラムの中で「require_once( "MDB2.php" );」しています。

このトラブルを解決する方法を、御教え下さい。

  • 返事が遅くなり、申し訳ありません。flied_onion様の御回答、大変役に立ちました。有難う御座いました。 -

回答

freeResultはMDBにはあるようですが、MDB2では見つけられませんでした。

https://pear.php.net/package/MDB/docs/1.3.0/MDB/MDB_Common.html#methodfreeResult

元のシステムではMDB 1.xなのではないでしょうか。
そしてMDB2ではfreeなのでは?

PEARのgetAllメソッド

PEARだと範囲が広すぎるのでクラスまで(PEAR::DBとかPEAR::MDB2とか)示した方がよいかと思います。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。