PHP | mysqli::__construct()エラーの原因と修正案

PHPでmysqli()での接続時に発生する「mysqli::__construct()」関連のエラーが発生する原因と対処・修正案について紹介しています。

$mysqli = new mysqli('localhost', 'user_name', 'password', 'database_name');

mysqlサーバーが見つからない

mysqlサーバーが見つからない場合、以下のようなエラーが表示されます。

Warning: mysqli::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known in ~
php_network_getaddresses: getaddrinfoに失敗しました:名前またはサービスが不明です

ユーザー名またはパスワードが間違っている

ユーザー名またはパスワードが間違っている場合、以下のようなエラーが発生します。

ユーザー名とパスワードを再確認する必要があります。

Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'user_name'@’localhost' (using password: YES) in ~
ユーザー’user_name' @’localhost'のアクセスが拒否されました (パスワードを使用:YES)

データベース名が間違っている

データベース名が間違っている場合は以下のようなエラーが出力します。

存在しないデータベース名を指定している可能性があります。

Warning: mysqli::__construct(): (HY000/1044): Access denied for user 'user_name'@’localhost' to database 'database_name' in ~
ユーザー’user_name'@’localhost'のデータベース’database_name'へのアクセスが拒否されました

mysqlと記述している

「mysqli」のところを間違って「mysql」と記述してしまっている場合に発生するエラーです。

Fatal error: Uncaught Error: Class “mysql" not found in ~
致命的なエラー:キャッチされないエラー:クラス"mysql“が見つかりません

PHP,PHP エラー

Posted by Yousuke.U