レシピ

データベース MySQL

mysqliでテーブルを作成(CREATE TABLE)

  • このエントリーをはてなブックマークに追加

今回はmysqliを使ってデータベースに接続し、新しくテーブルを作成する方法を解説します。

この記事のポイント

  • mysqliでMySQLデータベースにテーブルを作成する
  • 具体的なコード例で処理内容が理解できる

目次

データベースに新しくテーブルを作成する

前回の「mysqliを使ってデータベースへ接続」では、MySQLiを使ってデータベースへ接続するところまでを確認しました。
今回は接続したデータベースに、新しくテーブルを追加していきます。

今回は次のようなテーブルを作成します。

テーブル名:gc_granola
カラム名 その他
id INT(11) AUTO INCREMENT、主キー
name VARCHAR(20)
price INT(11)
better_before DATETIME
modify_datetime DATETIME
create_datetime DATETIME

オブジェクト型の書き方

まずはオブジェクト型のコードで作っていきます。
接続エラーの確認までは前回のコードと同様です。

オブジェクト型でのテーブル作成例

$mysqli = new mysqli( 'host_name', 'user_name', 'password', 'gc_database');

if( $mysqli->connect_errno ) {
	echo $mysqli->connect_errno . ' : ' . $mysqli->connect_error;
}

$mysqli->set_charset('utf8');

// テーブルを作成するSQLを作成
$sql = 'CREATE TABLE gc_granola (
	id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(20),
	price INT(11),
	better_before DATETIME,
	modify_datetime DATETIME,
	create_datetime DATETIME
) engine=innodb default charset=utf8';

// SQL実行
$res = $mysqli->query($sql);

$mysqli->close();

解説

set_charsetメソッドを使って、文字コードを指定しています。
文字コードの設定は重要なので、忘れずに指定するようにしましょう。

続くコードでは変数へテーブル作成のためのSQLを記述しています。
テーブル作成については、SQLの「CREATE TABLE」を使います。括弧「(〜)」の中ではテーブルのカラムについての指定を、その後はテーブルの初期設定に関するデータベースエンジンと文字コードの指定です。

次に、作成したSQLを実行するためにqueryメソッドを呼び出します。
うまく実行されると、次のような6つのカラムを持ったテーブル「gc_granola」が作成されます。

作成されたテーブル

mysql_queryメソッドの返り値は、テーブル作成に成功したらtrue、作成に失敗したらfalseです。

手続き型の書き方

次は、手続き型でテーブルを作成するコードです。

手続き型でのテーブル作成例

$db_link = mysqli_connect( 'host_name', 'user_name', 'password', 'gc_database');

if( mysqli_connect_errno($db_link) ) {
	echo mysqli_connect_errno($db_link) . ' : ' . mysqli_connect_error($db_link);
}

// テーブルを作成するSQLを作成
$sql = 'CREATE TABLE gc_granola (
	id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(20),
	price INT(11),
	better_before DATETIME,
	modify_datetime DATETIME,
	create_datetime DATETIME
) engine=innodb default charset=utf8';

// SQL実行
mysqli_query( $db_link, $sql);

mysqli_close($db_link);

解説

実行結果は上記「オブジェクト型」と同じです。
SQLも全く同じ内容になります。

手続き型ではSQLクエリと一緒に、データベース接続のときに受け取ったオブジェクトを渡す必要があります。

  • このエントリーをはてなブックマークに追加
前のページへ 一覧ページへ一覧 次のページへ