接続失敗時のエラー表示

広告

PDOを経由でデータベースへ接続した時に、データベース側で何かあった場合にどのようなエラーが出るのかを一応確認しておきます。例としてMySQLへの絵接続の場合で試してみます。

実際に試すプログラムとしては下記のものを使います。

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

$dsn = 'mysql:dbname=uriage;host=localhost';
$user = 'testuser';
$password = 'testuser';

try{
    $dbh = new PDO($dsn, $user, $password);

    print('<br>');

    if ($dbh == null){
        print('接続に失敗しました。<br>');
    }else{
        print('接続に成功しました。<br>');
    }
}catch (PDOException $e){
    print('Error:'.$e->getMessage());
    die();
}

$dbh = null;

?>

</body>
</html>

まずユーザー名が間違っていた場合です。

PDOでユーザー名が間違っていた場合のエラーメッセージ

下記のようなエラーメッセージが表示されます。

SQLSTATE[28000] [1045] Access denied for user 'testuserr'@'localhost' (using password: YES)

次はホスト名が間違っていた場合です。

PDOでホスト名が間違っていた場合のエラーメッセージ

下記のようなエラーメッセージが表示されます。

SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhosta' (11001)

最後にMySQLのサーバが停止していた場合です。

PDOでサーバが停止していた場合のエラーメッセージ

下記のようなエラーメッセージが表示されます。

SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061)

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)