PHPのPDOでサクッとMySQLへの接続を確認するコード

※PHP7.2では、dsnの引数で mysql:dbhost とすると接続出来ないことコメントで頂きましたのでサンプルコードを修正しました。
公式ドキュメントでもmysql:hostが正しいようです。http://php.net/manual/ja/pdo.construct.php

こんにちは、タカフです。

WordPressのデータベース接続エラーって、無慈悲ですよね。

これが表示された時にゃ絶望感で打ちひしがます。。。

そして、これに限らずPHPでDB接続に失敗する時とか、新規で立てたサーバーからDB接続確認する時とか、そもそもDB接続確認自体出来ているのかって事をサクッと確認したい時、あると思います。

次のコードをコピペしてphpファイルにして設置するとその接続状態を確認することが出来ます。

db_check.php
<?php
// defineの値は環境によって変えてください。
define('HOSTNAME', 'localhost');
define('DATABASE', 'mydatabase');
define('USERNAME', 'root');
define('PASSWORD', '');

try {
  /// DB接続を試みる
  $db  = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD);
  $msg = "MySQL への接続確認が取れました。";
} catch (PDOException $e) {
  $isConnect = false;
  $msg       = "MySQL への接続に失敗しました。<br>(" . $e->getMessage() . ")";
}
?>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>MySQL接続確認</title>
  </head>
  <body>
    <h1>MySQL接続確認</h1>
    <p><?php echo $msg; ?></p>
  </body>
</html>

ターミナルからmysql叩いてもいいんですが、PDO自体入ってなかったりすることもあったりしたので、そういう時のためにもいつでも使えるように記事にしておきます。

現場からは以上です。

 

2 Comments

Takafumi Suzuki

もりもりさん、ありがとうございます。

僕の方でも試したところ、確かにphp7.2でdbhostでは接続出来ませんでした。
仰る通り公式ページでhostと記述してあるので記事の方も修正しました。

↓ググると同じ問題でハマった人もいるようですね。
https://teratail.com/questions/117320

お手間をとらせてしまいすみませんでした_| ̄|○

返信する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です