PHP MySQL データベースの作成

❮ 前章へ 次章へ ❯

データベースは、1つ以上のテーブルで構成されます。

MySQLデータベースを作成または削除するには、特別な CREATE 権限が必要です。


MySQLiとPDOを使用したMySQLデータベースの作成する

CREATE DATABASE 文は、MySQLにデータベースを作成するために使用します。

次の例は、"myDB"という名前のデータベースを作成します:

例(MySQLiオブジェクト指向型)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
    echo "Database created successfully";
} else {
    echo "Error creating database: " . $conn->error;
}

$conn->close();
?>

注: 新しいデータベースを作成するときは、mysqliオブジェクトの最初の3つの引数 (サーバ名、ユーザ名、パスワード)のみを指定しなければなりません。

チップ:指定のポートを使用しなければならない場合は、次のように、database-name 引数に空の文字列を追加します: new mysqli("localhost", "username", "password", "", port)

例(MySQLi手続き型)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// Create database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
    echo "Database created successfully";
} else {
    echo "Error creating database: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

注:次のPDOの例は、"myDBPDO"という名前のデータベースを作成します:

例(PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "CREATE DATABASE myDBPDO";
    // use exec() because no results are returned
    $conn->exec($sql);
    echo "Database created successfully<br>";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>

チップ: PDOの素晴らしい点は、データベースクエリで発生する可能性のある問題を処理するための例外クラスがあることです。 try{ } ブロック内で例外がスローされた場合、スクリプトは実行を停止し、最初の catch(){ } ブロックに直接処理が移動します。 上の catch ブロックでは、SQL文と生成されたエラーメッセージをエコーします。


❮ 前章へ 次章へ ❯