複数DBに対応したCMS構築【その2】〜MySQL〜

こんにちは。ガラパゴス社web-teamの[twitter:@yamaD_426]です。
前回は3種データベースに対応するまでのステップについて書きましたが、
今回は3種データベースのうち、MySQLとの連携について書きたいと思います。



前回の記事はこちら
複数DBに対応したCMS構築【その1】〜putty,lighttpd,PHP5〜 - スマートフォンアプリ開発会社のエンジニアブログ

MySQLとの連携

まずは、MySQLとの連携についてです。
MySQLと連携するにはまず、以下のようにコマンドで入力してください。


sudo apt-get install mysql-server
sudo apt-get install php5-mysql

この2つを実行します。これで、PHPからMySQLを利用できる状態になります。
途中でrootについてのパスワードを聞かれるので、適切なパスワードを設定してください。


さて、今回の環境作りでは、実際にテストデータベースが必要とされたので、
データベース作りについても書きます。

コマンドで、

mysql -u root -p

と打ちます。この後、rootについて設定したパスワードを入力してください。
その後、

create database SYSDBA;
show databases;

と入力して、以下の図のような画面が出れば成功です。SYSDBAというのは、
適当につけただけなんで、何をつけても大丈夫です。むしろユーザーに
つけることの方が多いんで、もっとよい名前にした方がよいです。
これで空のデータベースができ、開発できるようになりました!



このCMSソースコードは私が書いたわけではないのですが、以上のように連携した後に
空のデータベースを作ることで、mysql.phpというファイルが読み込まれ、

<?php
function sql_connect(){
	if(!PHP_INI_DB){
		if(!mysql_connect(MY_USER, MY_PASS)){
			return FALSE;
		}
	}
	$result = mysql_select_db(MY_DB);
	if(!$result){
		return FALSE;
	}
	return mysql_query('SET AUTOCOMMIT = 0');
}
?>

このようなMySQLと接続するための関数が正常動作するようになります。
定義部分は省略しますが、PHP_INI_DBとは、php.iniの接続情報を利用
するかどうかを判定しています。また、'SET AUTOCOMMIT = 0'で、
Autocommit機能を無効にし、常にトランザクションが開かれた状態としています。
上部のソースコードのうちとりあえずの重要な部分、

mysql_connect(MY_USER, MY_PASS)
mysql_select_db(MY_DB)

がちゃんと動くようになり、開発環境は完成です!

次回はPostgreSQLとの連携について書きたいと思います。
yamaD_426でした!