8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

レンタルサーバーと、開発用ローカルでDB接続を自動的に切り替える

Last updated at Posted at 2014-02-12

レンタルサーバー上のPHPとMySQLを用いて、臨床試験サイトを構築しています 開発は、MAMMPを用いているのですが、ローカルでテストしたものをuploadする時に、いちいちサーバー・データを書き換えていましたが 気がついて以下のようにしました

config.php
if ($_SERVER['SERVER_NAME'] === 'www.hogehoge.org') {
	$db_host = '127.0.0.1';
	$db_user = 'kogekoge';
	$db_password = 'legelege';
	$site_url = 'https://www.hogehoge.org/megemege/';
} elseif ($_SERVER['SERVER_NAME'] === 'localhost') {
	$db_host = 'localhost';
	$db_user = 'root';
	$db_password = 'negenege';
	$site_url = 'localhost/megemege/';
} else {
	die('illegal connection<br />');
}

$db_name = 'rapandbeat';

これで PDOを用いて
PHPでデータベースに接続するときのまとめにあるように

main.php
require_once("config.php");

//接続
try {
// MySQLサーバへ接続
$pdo = new PDO("mysql:host=$db_host;dbname=$db_name;charset=utf8", $db_user, $db_password);
// 注意: 不要なspaceを挿入すると' '.$db_host のようにみなされ、エラーとなる
} catch(PDOException $e){
    	die($e->getMessage());
}

とすることでローカルとレンタルサーバーの自動振り分けが可能となりました ちなみに、new PDOの中の引数で、読みやすくなるだろう、との配慮から myslq:host= $db_host;・・・・・・などとしていて、何時までたってもPDOが使えなかったことが最初ありました
このように半角スペースを挿入すると、 .$db_host とみなされて、エラーとなっていました

8
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?