PHPスクリプトで新しいデータベースを作成する方法|mysql_queryの使い方とサンプルコード
ご存知の通り、PHPにはMySQLサーバー上でSQL文を実行するための mysql_query という関数が用意されており、これを利用することで新しいデータベースを作成できます。
データベース作成の基本的な流れ
PHPスクリプトからデータベースを作成する際は、一般的に次の手順で処理を進めます。
- 接続情報の設定:ホスト名、ユーザー名、パスワードをそれぞれ変数に格納します。
- MySQLサーバーへの接続:
mysql_connect()を使ってサーバーに接続し、接続に失敗した場合はエラーメッセージを表示して処理を終了させます。 - SQL文の実行:
CREATE DATABASE文を組み立て、mysql_query()で実行します。 - 結果の確認と後処理:実行結果を判定し、最後に
mysql_close()で接続を閉じます。
サンプルコード:「Tutorials」データベースの作成
それでは実際に、PHPスクリプトを使って「TUTORIALS」という名前のデータベースを作成してみましょう。
<html>
<head>
<title>Creating MySQL Database</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully<br />';
$sql = 'CREATE DATABASE TUTORIALS';
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not create database: ' . mysql_error());
}
echo "Database TUTORIALS created successfully\n";
mysql_close($conn);
?>
</body>
</html>
コードのポイント
- 接続やクエリの実行に失敗した場合は
die()によって処理を中断し、mysql_error()でエラー内容を出力しています。 - すべての処理が成功すれば、「Database TUTORIALS created successfully」というメッセージが表示されます。
- 作業完了後は必ず
mysql_close()を呼び出して、サーバーとの接続を解放しましょう。
重要な注意点:mysql_* 関数は現在使えません
上記の mysql_connect() や mysql_query() などの mysql_* 系関数は、PHP 5.5で非推奨となり、PHP 7.0以降では完全に削除されました。そのため、現行の環境でそのまま実行するとエラーになります。
現在の開発では、代わりに以下のいずれかを使用することが推奨されます。
- mysqli拡張モジュール:
mysqli_query()など。手続き型・オブジェクト指向のどちらのスタイルでも記述でき、既存のコードからの移行も比較的容易です。 - PDO(PHP Data Objects):複数のデータベースに対応した抽象化レイヤーで、プリペアドステートメントによるSQLインジェクション対策にも優れています。
たとえばmysqliを使った場合、上記の処理は次のように書き換えられます。
$conn = mysqli_connect('localhost', 'root', 'rootpassword');
if(!$conn){
die('Could not connect: ' . mysqli_connect_error());
}
echo 'Connected successfully<br />';
$sql = 'CREATE DATABASE TUTORIALS';
if(mysqli_query($conn, $sql)){
echo "Database TUTORIALS created successfully\n";
} else {
die('Could not create database: ' . mysqli_error($conn));
}
mysqli_close($conn);
構文がほぼ同じため、mysql_* を mysqli_* に置き換えるだけで移行できるケースも多くあります。新規プロジェクトでは、セキュリティ面でも有利なPDOの採用もぜひ検討してください。
-
JDBCでデータベースからファイル(CLOB)を取得する方法
JDBCでデータベースからファイルを取得するには?データベースには、ファイルの内容をCLOB型として格納することが一般的です。ResultSetインターフェースには、このCLOB型のデータを取得するためのgetClob()メソッドとgetCharacterStream()メソッドが用意されています。どちらのメソッドも、引数として列のインデックスを表す整数、または列名を表す文字列を受け取り、指定された列の値を取得します。両者の違いは、getClob()メソッドがClobオブジェクトを返すのに対し、getCharacterStream()メソッドはCLOB型の内容を保持するReaderオブジェクト
-
PHPのimagecreatetruecolor()関数で新しいトゥルーカラー画像を作成する方法
imagecreatetruecolor()は、PHPに組み込まれている関数の一つで、新しいトゥルーカラー画像を作成するために使用されます。この関数は、指定したサイズの空の画像を返します。トゥルーカラー画像とは、パレット形式ではなくRGBのフルスペクトル(約1,677万色)を表現できる画像形式のことで、グラデーションや写真など、色の表現力が求められる画像処理に適しています。 構文 resource imagecreatetruecolor($width, $height) パラメータ imagecreatetruecolor()は、$widthと$heightという2つのパラメータを受け取りま