Developer

【PHP基礎】mysqli関数② データベースとの接続
2021.02.05
Lv1

【PHP基礎】mysqli関数② データベースとの接続

mysqli関数

今回はデータベースとの接続、データベースの選択、文字コードについて扱います。

■データベースとの接続と切断

最終的にPHPからデータベースを操作したいのですが、そのためにはPHPとデータベースを接続する必要があります。
イメージはコマンド操作する際のログインです。
そして処理が終わったら接続を切ります。
接続数が限られているので、処理が終わったら接続を切りましょう。

データベースと接続するにはmysqli_connect関数を使用します。
データベースと接続を切るにはmysqli_close関数を使用します。
サンプルで確認してみましょう。

<?php
    $host = 'localhost';
    $username = 'root';
    $password = '';
    $dbname = 'sample_db';
    $connection = mysqli_connect($host, $username, $password, $dbname);

    if(!$connection) {
        die("接続に失敗しました。");
    }
    echo '接続に成功しました。';
    mysqli_close($connection);
?>

※die関数は、引数のメッセージを表示後、スクリプトを終了します。

実行すると成功か失敗かが表示されます。
ポイントは2~5行目です。

$host データベースのホスト名
$username 接続するユーザー名
$password パスワード
$dbname 接続するデータベース名

接続に失敗した方はこれらの設定が自分の環境と合っているか確認してみてください。

■データベースの選択

データベースの選択は接続と分けることも可能です。
コマンドで言うとuse sample_dbに該当します。

使用する関数はmysql_select_db関数です・

<?php
    $con = mysqli_connect('localhost', 'root', '');
    if(!$con) {
        die('接続できませんでした。');
    }

    $res = mysqli_select_db($con, 'sample_db');
    if(!$res) {
        die('sample_dbを使用できません。');
    }

    echo 'sample_dbを選択しました。';

    mysqli_close($con);
?>

■データベースの文字コード

正確に言うと、接続で使用する文字コードです。
ここに文字コードのズレが生じると文字化けの原因になります。
UTF8をデフォルトとしているものが多いので、特に理由がなければ開発周りの文字コードはUTF8に統一しておくことをオススメします。

<?php
    $con = mysqli_connect('localhost', 'root', '', 'sample_db');

    if(!$con) {
        die('接続に失敗しました');
    }
    echo '接続に成功しました。<br>';

    $charset = 'utf8';
    $res = mysqli_set_charset($con, $charset);

    if(!$res) {
        die($charset.'の読み込みに失敗しました。');
    }
    echo "文字コードを【{$charset}】に変更しました。<br>";

    mysqli_close($con);
?>

今回はまだ準備段階ですが、接続はデータベース連携において必ず必要となる処理です。
次回以降でも必要となりますので、しっかりとポイントをおさえておきましょう。

PHP基礎 連載目次リンク

PHP基礎 連載目次