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", $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ステートメントと生成されたエラーメッセージをechoします。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。