レンタルサーバー上の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 とみなされて、エラーとなっていました