【PHP】MySQLに接続する(mysqli)

  • 投稿 : 2020-06-06
スターサーバーとバリューサーバーで確認しました。
<?php
header("Content-Type: text/html; charset=UTF-8");

//------------------------------
// レンタルサーバーに合わせて書き換える
//------------------------------
//MySQLホスト名
$host = "mysql1.star.ne.jp";
//データベース名
$dbname ="test_db"; 
//MySQLユーザ名
$user = "test_db_user";
//MYSQLのパスワード
$password = "xxxxxxx"; 
//-----------------------------

$link = mysqli_connect($host, $user, $password, $dbname);

if(!$link) {
  echo 'Connection failed: ['. mysqli_connect_errno() .'] '. mysqli_connect_error() ;
  exit;
}

//クローズ
mysqli_close($link);

echo '接続に成功ししました';

PHP: mysqli_connect - Manual

mysqliを使った方法です。上記のサンプルほぼそのままです。

バリューサーバーの場合は、$host = "localhost"; でMYSQLに接続できます。

エラーが出る

MySQL :: MySQL 5.6 リファレンスマニュアル :: B.3 サーバーのエラーコードおよびメッセージ

エラー番号と、英語のメッセージで大体見当がつくかと思う。

MySQLホスト名の指定がNG

[2002] php_network_getaddresses
[2005] Unknown MySQL server host

データベース名の指定がNG

[1044] Access denied for user

ユーザー名、パスワードの指定がNG

[1045] Access denied for user

接続ユーザーにDBアクセスする権限がない

[1045] Access denied for user

オブジェクト指向で書く

<?php
header("Content-Type: text/html; charset=UTF-8");

//------------------------------
// レンタルサーバーに合わせて書き換える
//------------------------------
//MySQLホスト名
$host = "mysql1.star.ne.jp";
//データベース名
$dbname ="test_db"; 
//MySQLユーザ名
$user = "test_db_user";
//MYSQLのパスワード
$password = "xxxxxxx"; 
//-----------------------------

$mysqli = new mysqli($host, $user, $password , $dbname);

if ($mysqli->connect_error) {
  die('Connect Error [' .$mysqli->connect_errno . '] '. $mysqli->connect_error);
}

//クローズ
$mysqli->close();

echo '接続に成功ししました';

PHP: mysqli::__construct - Manual

同じ処理ですが、このように書くことも可能です。

いまどきは、こっちを書くと思う。

スポンサーリンク
タグ#PHP#code