MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

PHPスクリプトで新しいデータベースを作成する方法|mysql_queryの使い方とサンプルコード

ご存知の通り、PHPにはMySQLサーバー上でSQL文を実行するための mysql_query という関数が用意されており、これを利用することで新しいデータベースを作成できます。

データベース作成の基本的な流れ

PHPスクリプトからデータベースを作成する際は、一般的に次の手順で処理を進めます。

  1. 接続情報の設定:ホスト名、ユーザー名、パスワードをそれぞれ変数に格納します。
  2. MySQLサーバーへの接続mysql_connect() を使ってサーバーに接続し、接続に失敗した場合はエラーメッセージを表示して処理を終了させます。
  3. SQL文の実行CREATE DATABASE 文を組み立て、mysql_query() で実行します。
  4. 結果の確認と後処理:実行結果を判定し、最後に 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の採用もぜひ検討してください。

  1. JDBCでデータベースからファイル(CLOB)を取得する方法

    JDBCでデータベースからファイルを取得するには?データベースには、ファイルの内容をCLOB型として格納することが一般的です。ResultSetインターフェースには、このCLOB型のデータを取得するためのgetClob()メソッドとgetCharacterStream()メソッドが用意されています。どちらのメソッドも、引数として列のインデックスを表す整数、または列名を表す文字列を受け取り、指定された列の値を取得します。両者の違いは、getClob()メソッドがClobオブジェクトを返すのに対し、getCharacterStream()メソッドはCLOB型の内容を保持するReaderオブジェクト

  2. PHPのimagecreatetruecolor()関数で新しいトゥルーカラー画像を作成する方法

    imagecreatetruecolor()は、PHPに組み込まれている関数の一つで、新しいトゥルーカラー画像を作成するために使用されます。この関数は、指定したサイズの空の画像を返します。トゥルーカラー画像とは、パレット形式ではなくRGBのフルスペクトル(約1,677万色)を表現できる画像形式のことで、グラデーションや写真など、色の表現力が求められる画像処理に適しています。 構文 resource imagecreatetruecolor($width, $height) パラメータ imagecreatetruecolor()は、$widthと$heightという2つのパラメータを受け取りま