システム開発ブログ/ ソフトウエア開発部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

PEAR::DBからPEAR::MDB2へ変更する

松本
松本 (2010年6月23日 16:21)
ソフトウエア開発部 / PHP

DB接続処理で、PEAR::DBを使用しているプログラムを、
PEAR::MDB2を用いるよう変更したことがありました。

主に以下の点について、修正が必要でした。

(1)DB接続メソッドを変更する。

	$db = DB::connect([接続文字列]);
				↓
	$db = MDB2::connect([接続文字列]);

(2)エラー判定メソッドを変更する。
※元々[PEAR::isError()]を使用していれば、変更する必要はありません。
 また、今回は汎用性も考え、[MDB2::isError()]ではなく[PEAR::isError()]に変更しました。

	DB::isError($db)
		↓
	PEAR::isError($db)

(3)トランザクションの掛け方を変更する。

	$db->autoCommit( false ); 
			↓
	$db->beginTransaction();

(4)[quoteSmart] を [quote] に変更する。
※PEAR::DBの[quoteSmart]は、SQLインジェクション防止用のメソッドです。

	$db->quoteSmart([値]);
			↓
	$db->quote([値]);

また、PEAR::DBの[getOne]、[getAll]等のメソッドを使用している場合は、
更に以下の対応が必要です。

(5)[$db->loadModule('Extended');] を追加する。

 [getOne]、[getAll]等のメソッドは、PEAR::MDB2には存在しないので、
 Extendedモジュールをロードして、使用できるようにしなければなりません。
 今回は、DBに接続したタイミングで、ロードするようにしました。

(6)Extendedモジュールを使用しなれけばならないメソッドの呼び出し方法を変更する。

	$db->getOne([SQL文]);
			↓
	$db->extended->getOne([SQL文]);

(7)[getAll]メソッドの引数を追加する。
(8)[getAll]で指定している定数を変更する。

	$db->getAll([SQL文], array(), DB_FETCHMODE_ORDERED);
						↓
	$db->extended->getAll([SQL文], null, 
					 array(), null, MDB2_FETCHMODE_ASSOC);

他にも、使用しているメソッドによって更に修正が必要かとは思いますが、
参考にしていただければと思います。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。