レシピ

データベース MySQL/MariaDB

PHPでMySQL / MariaDBのデータベースを使う

  • このエントリーをはてなブックマークに追加

PHPからMySQL / MariaDBのデータベースにアクセスする方法について解説します。MySQLとMariaDBの違いも紹介します。

この記事のポイント

  • MySQLとMariaDBの違いが分かる
  • 基本的なデータベースの操作方法が分かる

目次

MySQLとMariaDBについて

MySQLとMariaDBはいずれもオープンソースで開発が進められたデータベースです。
まずはこの2つのデータベースの違いについて簡単に紹介します。

MySQLについて

MySQLは世界で最も有名なリレーショナルデータベースです。
Oracleデータベースと並んで広く使われています。

2008年に開発元の「MySQL AB」をサン・マイクロシステムズが買収し、さらに2010年にサン・マイクロシステムズがオラクルに買収されたことで、現在はオラクルが商標権や著作権を所有しています。
このような背景があり、MySQL ABの創設者がMySQLに完全互換のデータベースを派生して開発を進めたのがもう1つのMariaDBです。

MariaDBについて

MariaDBはMySQLから派生して開発が進められている、MySQLと互換性があるデータベースです。
システムからのデータベースアクセス方法も互換性があるため、データベースの違いをほぼ意識する必要なく使用できることもポイントになります。

2つのデータベースの違い

MariaDBはMySQLの非商用版をベースに開発が進められていたため、今までは使用にあたって違いを意識する必要がありませんでした。

しかし2013年以降、MySQLバージョン5.6から大幅なリファクタリング(動作は同じままに内部を最適化すること)されたことを機に、MariaDBでは実装するMySQLの機能の絞り込みと独自機能を実装する開発方針に変更されました。
そのため、今まではほぼ同じデータベースとして扱われてきましたが、今後は徐々に2つのデータベースが切り分けて扱われるかもしれません。

※2018年9月現在

MySQL MariaDB
最新版 8.0.12 10.3.9
開発元 オラクル MariaDB Corporation Ab
MariaDB Foundation
ライセンス GPL バージョン2
Commercial License
GPL バージョン2
LGPL for clients
公式サイト MySQL MariaDB

PHPからMySQL / MariaDBを使う

2018年9月現在、PHPからMySQL、MariaDBのいずれも同じ関数でアクセスすることができます。
PHPからMySQLやMariaDBにアクセスする方法は、mysqliクラス、mysqli系の関数、PDOを使う3種類が用意されています。

データベースに接続する

host_name」はホスト名、「user_name」はユーザー名、「password」はパスワード、「database_name」はアクセスしたいデータベース名を入力します。

データベースに接続するコード例

// (1)mysqliクラス
$mysqli = new mysqli( 'host_name', 'user_name', 'password', 'database_name');

// (2)mysqli_connect関数
$db_link = mysqli_connect( 'host_name', 'user_name', 'password', 'database_name');

// (3)PDO
$dbh = new PDO("mysql:host=127.0.0.1; dbname=database_name; charset=utf8", 'username', 'password');

データを取得

3種類ともSQL文は同じです。
myqli_query関数はオブジェクトがないため、引数としてデータベース接続時に作成したハンドラを渡して使用します。

データを取得するコード例

// SQL(SELECT)を作成
$sql = "SELECT * FROM user_list";

// (1)mysqliクラス
$data = $mysqli->query($sql);

// (2)mysqli_query関数
$data = mysqli_query( $db_link, $sql);

// (3)PDO
$data = $dbh->query($sql);

データを登録

データを登録するコード例

// SQL(INSERT)を作成
$sql = "INSERT INTO user_list (
	name, age, registry_datetime
) VALUES (
	'テスト太郎', 20, '2018-09-12 10:00:00'
)";

// (1)mysqliクラス
$mysqli->query($sql);

// (2)mysqli_query関数
mysqli_query( $db_link, $sql);

// (3)PDO
$dbh->query($sql);

データを更新

データを更新するコード例

// SQL(UPDATE)を作成
$sql = "UPDATE user_list SET age = 20 WHERE id = 5";

// (1)mysqliクラス
$mysqli->query($sql);

// (2)mysqli_query関数
mysqli_query( $db_link, $sql);

// (3)PDO
$dbh->query($sql);

データを削除

データを削除するコード例

// SQL(DELETE)を作成
$sql = "DELETE FROM user_list WHERE id = 3";

// (1)mysqliクラス
$mysqli->query($sql);

// (2)mysqli_query関数
mysqli_query( $db_link, $sql);

// (3)PDO
$dbh->query($sql);

データベースの接続を解除する

データベース接続解除するコード例

// (1)mysqliクラス
$mysqli->close();

// (2)mysqli_close関数
mysqli_close($db_link);

// (3)PDO
$dbh = null;

各操作についてさらに詳しく解説

データベースの操作についてもう少し詳しく知りたい方は、次のページをご覧ください。
大きく分けて、mysqli系とPDOを使った2種類の方法があります。

mysqli系

mysqliを使ってデータベースへ接続

mysqliクラス、およびmysqli_connect関数を使ったデータベースの接続方法について解説します。
現在は非推奨とされるmysqlクラスmysql_connect関数との違いや移行方法も紹介します。

mysqliでテーブルを作成(CREATE TABLE)

MySQL/MariaDBのデータベースに新しくテーブルを作成する方法について解説します。

mysqliでデータを取得(SELECT)

SQLのSELECT文を使ったデータ取得方法を解説。
取得するデータの形式を指定する方法や、取得件数を指定する方法も解説します。

mysqliでデータを新規登録(INSERT)

SQLのINSERT文の解説から、データベースに新しくデータを登録する方法について解説します。

mysqliでデータを更新(UPDATE)

SQLのUPDATE文の解説から、データベースにあるデータを更新する方法について解説します。

mysqliでデータを削除(DELETE)

SQLのDELETE文の解説から、データベースにあるデータを削除する方法について解説します。

mysqliのSELECT文を使った様々なデータの取得方法

日付で取得するデータを絞り込んだり、データの並びを指定するなど、データ取得のバリエーションについて解説します。

mysqliのトランザクション

データベースのトランザクションを使う方法を解説します。

mysqliのプリペアドステートメント

プリペアドステートメントを使ったデータベースへのアクセス方法について解説します。

mysqliで最後に登録したデータのIDを取得する

最後にデータベースへ登録したデータのIDを取得する方法を解説します。

mysqliで文字列をエスケープする

SQLインジェクションなどセキュリティ対策となる、文字のエスケープ処理を行う方法について解説します。


PDO系

PHPでPDOを使ってデータベースを操作する

PDOが提供する基本的な機能と、メリット&デメリットを紹介します。

PDOで使用できるデータベースを調べる

システムを構築する環境で、PDOが扱うことのできるデータベースを調べる方法について解説します。

PDOを使ってデータベースへ接続

PDOを使ってMySQL/MariaDBに接続する方法を解説します。

PDOでテーブルを作成(CREATE TABLE)

PDOを使ってMySQL/MariaDBのデータベースにテーブルを新しく作成する方法を解説します。

PDOでデータを新規登録(INSERT)

PDOを使ってMySQL/MariaDBのデータベースに新しくデータを登録する方法を解説します。

PDOでデータを取得(SELECT)

PDOを使ってMySQL/MariaDBに登録されているデータを取得する方法について解説します。

PDOでデータを更新(UPDATE)

PDOを使い、MySQL/MariaDBのデータベースに登録されているデータを更新する方法について解説します。

PDOでデータを削除(DELETE)

PDOを使い、MySQL/MariaDBのデータベースのデータを削除する方法を解説します。

PDOのトランザクション

PDOでMySQL/MariaDBのトランザクションを実装する方法を解説します。

PDOで最後に登録したデータのIDを取得する:lastInsertId

データベースへ最後に登録したデータのIDを取得する方法について解説します。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

ありがとうございます。
コメントを送信しました。

  • このエントリーをはてなブックマークに追加
前のページへ 一覧ページへ一覧 次のページへ