1.はじめに
この記事では、PHPを使ってMySQLデータベースに接続する方法を解説します。
PHPの基本的な知識がある方、データベース接続に挑戦したい初心者の方は是非ご覧ください。
2.PHPとMySQLの接続とは?
まずデータベースとは何か、PHPがどのようにデータベースと通信するのかについて簡単に説明します。
データベースとは、データを効率的に保存・管理・検索・更新するためのシステムです。一般的にデータベースは、表形式でデータを保存する「リレーショナルデータベース」(MySQL,PostgreSQL)がよく使用されます。これに対して、ドキュメント指向などの非リレーショナルデータベース(MongoDB)も存在します。
そして、PHPはデータベースと通信するための多くの方法を提供しています。最も一般的なのがMySQLやMariaDBと連携することです。
接続方法として「PDO(PHP Datta Objects)」と「MySQLi」の2つの接続方法があります。
今回はより汎用的で推奨されているPDOを使用します。
3.PHPでのMySQL接続コードの解説
3.1 PDOを使用した接続方法
try {
$dsn = 'mysql:host=localhost;dbname=test_db;charset=utf8';
$username = 'root';
$password = '';
$option = [
PDO::ATTR_ERRMODE => PDO::ERRRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
$pdo = new PDO($dsn, $username, $password, $option);
echo "データベースに接続できました!";
} catch (PDOException $e) {
echo "接続に失敗しました。". $e->getMessage();
}
コードの説明:
-
$dsn
:データベースの接続情報を定義する文字列。host
、dbname
、charset
を指定。 -
$username
と$password
:データベースにアクセスするためのユーザー情報。 -
PDO
オプション:PDO(PHP Data Object)によるデータベース接続時に設定する追加のオプションです。これにより、エラーハンドリングやデータの取得方法など、PDOの挙動をカスタマイズすることができます。 -
try-catch
:プログラムで発生するエラー(例外)を適切に処理するための構文です。これを使うことで、プログラムが予期せぬエラーで停止することを防ぎ、エラーが発生した場合にどう対処するかを決められます。
3.2 エラーハンドリングとデバッグ
-
$e->getMessage()
:この方法で取得できる具体的なエラーメッセージは、開発者にとってエラーの原因を特定し、効率的なデバッグと適切なハンドリングエラーを行うための強力なツールです。
4.データの取得と表示
接続が成功した後、簡単なクエリを実行してデータを取得・表示する方法を紹介します。
$stmt = $pdo->query('SELECT * FROM users');
while ($row = $stmt->fetch()) {
echo $row['name']. '<br>';
}
コードの説明:
$stmt = $pdo->query('SELECT * FROM users');
-
query()
メソッドは、SQL文を実行するために使われます。この場合、SELECT * FROM users
というSQLクエリが実行されています。このクエリは、users
テーブルのすべての列を取得します。 -
pdo
は、事前に作成されたデータベースへの接続帆保持しているPDO
オブジェクトです。この接続が成功していれば、クエリを実行できます。
while ($row = $stmt->fetch())
-
fetch()
メソッドは、クエリ結果から1行ずつデータを取得します。最初に呼び出すと、最初の行を返し、次に呼び出すと2行目以降を順に返します。 -
while
ループを使用して、結果が取得され続ける限り、データの処理を繰り返します。データがなくなると、fetch()
はfalse
を返し、ループが終了します。
echo $row['name']. '<br>';
-
$row
はfetch()
で返された1行分のデータを保持する配列です。この配列の各要素は、テーブルの列に対応しています。例えば、users
テーブルにname
という列がある場合、$row['name']
でその列のデータを取得できます。 -
echo
を使ってname
列の値をブラウザに表示し、<br>
で改行を挿入しています。
5.まとめ
PHPとMySQLの接続ができるようになった後、次に挑戦すべきステップは、データベースへのデータの挿入、更新、削除などの操作です。これらの操作を総称してCRUD操作(Create,Read,Update,Delete)と呼びます。
CRUD操作を習得することで、動的なWebアプリケーションの開発が可能となり、ユーザーの入力に応じてデータを操作するシステムを構築できるようになります。
6.追加リソース
さらに深掘りしたい人向けに役立つ公式ドキュメントや参考リンクを紹介して終わりたいと思います。
- PHP PDO マニュアル
https://www.php.net/manual/ja/book.pdo.php - MySQL マニュアル
https://dev.mysql.com/doc/
最後までご覧いただきありがとうございました。