PHP MySQL データベースの作成
1. MySQLiとPDOを使用したMySQLデータベースの作成
MySQLでデータベースを作成するには、SQLコマンドの CREATE DATABASE を使用します。
注: MySQLデータベースを作成または削除するには、管理者権限(Administrative Privileges)が必要です。
以下の例では、"myDB" という名前のデータベースを作成します。
1.1 MySQLi オブジェクト指向での実装例
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// 接続の作成
$conn = new mysqli($servername, $username, $password);
// 接続の確認
if ($conn->connect_error) {
die("接続に失敗しました: " . $conn->connect_error);
}
// データベースの作成
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
echo "データベースが正常に作成されました";
} else {
echo "データベース作成エラー: " . $conn->error;
}
// 接続を閉じる
$conn->close();
?>注: 新しいデータベースを作成する際、mysqli オブジェクトには最初の3つの引数(サーバー名、ユーザー名、パスワード)のみを指定する必要があります。
Tips: 特定のポート(Port)を使用する必要がある場合は、データベース名の引数に空の文字列を指定して、次のように記述します: new mysqli("localhost", "username", "password", "", port)
1.2 MySQLi 手続き型での実装例
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// 接続の作成
$conn = mysqli_connect($servername, $username, $password);
// 接続の確認
if (!$conn) {
die("接続に失敗しました: " . mysqli_connect_error());
}
// データベースの作成
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "データベースが正常に作成されました";
} else {
echo "データベース作成エラー: " . mysqli_error($conn);
}
// 接続を閉じる
mysqli_close($conn);
?>1.3 PDOでの実装例
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
// PDOインスタンスの作成
$conn = new PDO("mysql:host=$servername", $username, $password);
// PDOエラーモードを例外(Exception)に設定
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("接続できませんでした。 " . $e->getMessage());
}
try {
// データベース作成のSQL実行
$sql = "CREATE DATABASE myDB";
$conn->exec($sql);
echo "データベースが正常に作成されました";
} catch(PDOException $e) {
// データベース作成中のエラーをハンドリング
echo "データベース作成エラー: " . $sql . "<br>" . $e->getMessage();
}
// 接続を閉じる
$conn = null;
?>Tips: PDOには、データベースクエリで発生する可能性のある問題を処理するための
例外(Exception)クラスが用意されています。try { } ブロック内で例外がスローされると、スクリプトの実行は停止し、直後の catch(){ } ブロックへ処理が移ります。上記の catch ブロックでは、実行したSQLステートメントと発生したエラーメッセージを出力しています。