MySQLテーブルを作成するPHP関数は?mysql_queryの使い方と注意点
PHPでMySQLテーブルを作成するには、mysql_query関数を使用します。この関数は2つの引数を受け取り、クエリの実行に成功した場合はTRUE、失敗した場合はFALSEを返します。基本的な構文は以下の通りです。
構文
bool mysql_query( sql, connection );
パラメータの詳細
この関数で使用される各パラメータの内容は次の通りです。
| No. | パラメータと説明 |
|---|---|
| 1 | sql 必須項目です。テーブルを作成するためのSQLクエリ(CREATE TABLE文など)を指定します。 |
| 2 | connection 省略可能な項目です。接続を指定しない場合は、mysql_connectによって最後に開かれた接続が自動的に使用されます。 |
注意:mysql_queryは現在非推奨
重要な点として、mysql_query関数を含む旧MySQL拡張モジュール(ext/mysql)は、PHP 5.5で非推奨となり、PHP 7.0以降では完全に削除されました。そのため、最新の環境ではこの関数を使用できません。
現在の開発では、代わりに以下のいずれかを使用することが強く推奨されています。
- mysqli_query … MySQLi拡張モジュールによる手続き型・オブジェクト型両対応の関数
- PDO::query … 複数データベースに対応したPDO(PHP Data Objects)によるメソッド
mysqli_queryを使った記述例
参考までに、MySQLiを使ってテーブルを作成するサンプルコードを紹介します。
$mysqli = new mysqli("localhost", "username", "password", "database");
$sql = "CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100)
)";
if ($mysqli->query($sql) === TRUE) {
echo "テーブルの作成に成功しました";
} else {
echo "エラー: " . $mysqli->error;
}
このように、新しいプロジェクトではMySQLiまたはPDOを採用することで、セキュリティ面(プリペアドステートメント対応など)と保守性の両方が向上します。
-
MySQLストアドプロシージャで一時テーブル(TEMPORARY TABLE)を作成する方法
MySQLストアドプロシージャで一時テーブルを作成する基本構文MySQLのストアドプロシージャ内で一時テーブル(TEMPORARY TABLE)を作成する場合、基本となる構文は以下の通りです。CREATE PROCEDURE yourProcedureName() BEGIN CREATE TEMPORARY TABLE yourTemporaryTableName SELECT yourValue; ENDストアドプロシージャの作成例それでは、実際にこの構文を使って一時テーブルを作成し、テーブルにレコードを挿入してみましょう。まずは、一時テーブルを作成するストアドプロシージャを定義す
-
MySQLでテーブルを動的に作成する方法(ストアドプロシージャ活用)
MySQLでテーブルを動的に作成したい場合は、ストアドプロシージャを利用するのが便利です。この記事では、StudentId(int型)とStudentName(varchar型)の2つのカラムを持つテーブルを、任意のテーブル名で動的に生成する手順を解説します。 ストアドプロシージャの作成 まず、テーブル名を引数として受け取り、動的にCREATE TABLE文を組み立てて実行するストアドプロシージャを作成します。 mysql> DELIMITER $$ mysql> CREATE PROCEDURE creatingDynamicTableDemo(yourTableName VAR