0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mysqliを使ってPHPからMySQLに接続する方法

Posted at

はじめに

mysqli_connectを用いて、MySQLに接続する方法と切断する方法のみを説明します。
本記事では、データの取得や挿入などは触れていません。

事前知識

mysqliとは

mysqli(MySQL Improved)とは、PHPでMySQLデータベースとやり取りするための拡張機能のこと。

MySQLデータベースとは

MySQLデータベースは、データを効率的に保存、管理、検索するためのシステムのこと。
ユーザー情報、商品情報、ブログ投稿など、ウェブサイトの様々なデータを保存するために使われる。

mysqliを使ってデータベースに接続する

mysqli_connectを使ってデータベースに接続する

mysqli_connect 関数を使ってMySQLデータベースに接続する。

mysqli_connect(
$hostname,
$username,
$password,
$dbname
);

上のように、ホスト名、ユーザー名、パスワード、データベース名の順で書く。

続いて、接続を確認するために、変数を使って条件分岐を作成する。

$link = mysqli_connect($hostname,$username,$password,$dbname);

if (!$link) {
        echo 'データベースに接続できません。' . PHP_EOL;
        echo 'Debugging error:' . mysqli_connect_error() . PHP_EOL;
        exit;
    };

こうすることで、接続がうまくいっていないときは、エラーメッセージを出力することができる。
$linkにはmysqlオブジェクトが格納されている。
※₁mysqli_connect_error()は、接続できなかった際のエラーログが入っている。
※₂PHP_EOLはどのOSでも正しく改行される改行コード。

公式ドキュメントの解説

PHPの公式ドキュメントを見ると、mysqli_connectは以下のように書かれている。

mysqli_connect(
    ?string $hostname = null,
    ?string $username = null,
    ?string $password = null,
    ?string $database = null,
    ?int $port = null,
    ?string $socket = null
): mysqli|false
  • ?は、「nullable」型を表すために使用される。?string は、その引数が string 型または null であることを示している
  • = null は、その引数のデフォルト値が null であることを示すため、関数を呼び出す際にその引数が指定されなかった場合、その引数には null が自動的に割り当てられる
  • : の後に続く部分は、関数の戻り値を示し、この関数は mysqli オブジェクトfalseを示す

mysqlオブジェクトとは

mysqli オブジェクトは、データベース接続情報やその接続に対する操作(クエリの実行など)を管理するためのデータベース接続情報のこと。以下のような操作に使われる。:

  • データベースクエリの実行
  • トランザクションの管理
  • エラーメッセージの取得
  • 接続を切る

mysqliを使ってMySQLから切断する

アプリケーションが終了すると自動で切れるようになっていますが、念のため切断も記入しておく。

mysqli_close($link);
        echo 'データベースから切断しました。';

このように書くことで、データベースから切断し、切断できたか確認することができる。

まとめ

  • mysqli は、PHPでMySQLデータベースとやり取りするための拡張機能である
  • mysqli_connect 関数を使ってデータベースに接続し、接続が成功すると mysqli オブジェクトが返され、失敗すると false が返される
  • mysqli オブジェクトは、データベース接続情報やその接続に対する操作を管理する
  • アプリケーションが終了すると自動で接続が切れるが、 mysqli_close 関数で明示的に接続を切ることが推奨される
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?