ロリポップレンタルサーバーでPHPのPDOをするときの注意点
自作のPHPプログラムをロリポップレンタルサーバーで動かすときにいくつかハマったことをこのnoteで残しておきます。
ロリポップでPHPのPDOをするときの注意
PHPでPDOするとき、下のような感じでPDOしますよね。
define('DSN', 'mysql:host=localhost; dbname=dbname; charset=utf8');
define('DB_USER', 'dbuser');
define('DB_PASS', 'dbpassword');
$pdo = new PDO(DSN, DB_USER, DB_PASS);
XAMPPなどの開発環境下では上の方法でPDOしてもちゃんと動きますが、ロリポップレンタルサーバーでは動きません。僕はこれの原因追求するのに2日間をドブに捨てました。ロリポップレンタルサーバーでも動くようにするには下のように変更しなければなりません。
define('DSN', 'mysql:host=localhost;dbname=dbname;charset=utf8'); // 空白をなくすこと!!
define('DB_USER', 'dbuser');
define('DB_PASS', 'dbpassword');
$pdo = new PDO(DSN, DB_USER, DB_PASS);
最初のDSNの定義をするときに、定義する箇所にスペースが入っているとロリポップレンタルサーバーではうまく動きません。動かないのにエラーも出てくれないので、注意。空白をなくせばちゃんと動いてくれるはずです。
「ロリポップレンタルサーバー上でかつPHPを使ってデータベース接続できない!」という人はこのコメント欄ででも質問してください。答えられる範囲で返信をしようと思います。