PHPからMySQLに接続する方法
PHPからMySQLに接続する場合は、PHPの組込み関数 mysqli_connect() を使用します。
関数名に注意
PHPの組込み関数には mysql_connect() もありますが、PHP5.5.0で非推奨となりPHP7.0.0で削除されました。PHP7で動作させる可能性がある場合は、mysqli_connect() を使いましょう。
PHP:mysqli_connect() の書式
書式
mysqli_connect($host, $username, $passwd, $dbname, $port, $socket)
PHP:mysqli_connect() の引数
引数 | 型 | パラメータ |
$host | string | ホスト名、またはIPアドレス |
$username (任意) | string | 接続するMySQLのユーザー名 |
$passwd (任意) | string | 接続する$usernameのパスワード |
$dbname (任意) | string | SQLクエリを実行するデフォルトのデータベース名 |
$port (任意) | string | MySQLサーバーに接続する際のポート番号 |
$socket (任意) | string | 接続に使用するソケット |
PHP:mysqli_connect() の戻り値
成功すると、MySQLサーバーへの接続IDを返します。
失敗すると、false が返ります。
PHP:mysqli_connect() を使ったサンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $dbh = mysqli_connect('localhost', 'sanachan', 'passwords', 'PHP_NOTE_DB'); // MySQL への接続結果を確認 if ($dbh == false) { die("MySQLに接続できません:" . mysqli_connect_error() . "\n"); } else { echo "MySQLへ接続成功!\n" } ?> |
出力結果
$ php connect_mysql.php
MySQLへ接続成功!
PHPからMySQLに接続できない時の対処法
MySQLに接続する上記のサンプルでは、接続に失敗した際に
PHP の mysqli_connect_error() 関数でエラーメッセージを表示しています。
Operation timed out
ホスト名、またはIPアドレスが間違っている可能性があります。
mysqli_connect() の引数 $host を確認しましょう。
Access denied for user 'ユーザー名'@'ホスト名'
MySQLのユーザー名かパスワードが間違っている可能性があります。
mysqli_connect() の引数 $user と $passed を確認しましょう。
Unknown database 'データベース名'
存在しないデータベースを指定している可能性があります。
mysqli_connect() の引数 $dbname を確認しましょう。
Connection refused
MySQLサーバーが立ち上がっていない可能性があります。
サーバーの状態を確認しましょう。