PHPでデータベースを作成して、テーブルを作成する事がよくあります。オプション等もあり順番に番号を割り振ったり、重複はエラーにしたり出来ます。
データベースは「MYSQL」を使用して、テーブルを作成してみましょう。
また制御付きのカラムも作成して見ましょう!
この記事は5分で読めます。そして下記が理解できます。
- データベースの中のテーブルを作成するMYSQLの構文
- テーブル作成する時のオプションがわかる
- PHPで実際にテーブル作成
プログラミングにオススメのマウス
プログラミングにオススメのキーボード
PHP基礎・MYSQLでテーブルを作成する
テーブル作成基礎構文
データベースは作成しているものとして、該当DBにテーブルを作成する構文はこうなります。
create table テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)
create tableコマンドの後にテーブル名を入れます。その後は実際に作成するカラム名を順に入力します。
スペースを空けて型名を入力します。型名は沢山ありますが以下の3つがよく使用されます。
型名一覧
型名 | 説明 |
---|---|
INT | 数字 が入る |
VARCHAR(数字) | 文字列 が入る ※数字はバイト数 |
BOOLEAN | 真か偽が入る |
大きすぎると容量を余分にとる事になります。小さすぎると入らない可能性があります。程よい数字を入れましょう。
カラムを複数追加する
その後に「(」を入れてカラムを追加していきます。複数追加したい場合は「,」を使用して追加していきましょう。
複数のカラムを持ったテーブルが作成されるはずです。
これで簡単なテーブルが作成出来ました。次はテーブルを作成する上で、必要なオプションやエラー回避のオプションを追加します。
テーブルが無ければ作成したい
テーブルが既にある場合は作成しない、ない場合だけ作成したい
なんて事が出来れば更にやりたい事が広がります。
テーブルが無ければ作成するオプション
create table if not exists テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)
create tableの後に「if not exists」を入力します。これでテーブルがあれば何もしない、なければ作成する事が可能です。
※これがないとテーブルが既に存在していれば、エラーになります。
よく使用しますので、覚えておくと良いでしょう。
数字を増やしていく
オプション:AUTO_INCREMENT
テーブルのカラムに行を追加していきたい場合、数字を勝手に増やしていきたい場合があります。
自動で番号を振りたい場合などに使用します。
create table if not exists テーブル名 (id INT AUTO_INCREMENT,カラム名2 型名2,・・・)
カラムにデータが追加される度に、数字が自動で割り振られるテーブルを作成する事が可能です。
登録するデータにidを振り、id管理する事が出来ます。
空白は絶対避けたい
オプション:NOT NULL
カラムはデータによって空白の場合があります。しかしそのデータがないとエラーになるシステムでは絶対データを入れてもらいエラーを回避したいです。
名前などは絶対に記入してほしいですよね。
create table if not exists テーブル名 (id INT AUTO_INCREMENT,name varchar(10) NOT NULL,カラム名3 型名3・・・)
nameの型名の後に「NOT NULL」を入れています。これでnameのデータなしに追加しようとしたものはエラーが出ます。
重複のものは避けたい
オプション:UNIQUE
同じデータは避けたい場合もあります。名前などは重複しては判別つかないシステムなどある場合はこのオプションを使用してください。
create table if not exists テーブル名 (id INT AUTO_INCREMENT,name varchar(10) NOT NULL UNIQUE,カラム名3 型名3・・・)
UNIQUEオプションを使用するだけで、重複するカラムのデータを挿入しようとした場合にエラーではじいてくれます。
PHPでデータベースにテーブルを作成する場合
MYSQLの構文は理解していただけたと思います。
では実際PHPでテーブルを作成します。
DBにアクセスするインスタンスを作成
まずはデータベースにアクセスするインスタンスを作成し、「db」という変数に格納します。
try{
$DB_DATABASE = 'mydatabase';
$DB_USERNAME = 'root';
$DB_PASSWORD = '';
$DB_OPTION = 'charset=utf8';
$PDO_DSN = "mysql:host=localhost;dbname=" . $DB_DATABASE . ";" . $DB_OPTION;
$db = new PDO($PDO_DSN, $DB_USERNAME, $DB_PASSWORD,
[ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
echo 'DB接続成功';
} catch(PDOException $e){
echo 'DB接続失敗'. $e->getMessage();
exit();
};
- 「mydatabase」というデータベースを作成している事にします。
- データベースのログインIDが「root」とします。
- データベースのログインパスが「」(無し)とします。
- 例外処理でDBがなければエラーを出すようにしています。
詳しくは以下の「DBにアクセスする時の構文。例外処理あり」の記事を参照してください。
DBにテーブルを作成する
作成したインスタンスの変数「$db」を使用して、テーブルを作成します。
$db->query("create table if not exists テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)
queryでDBにリクエストを送る事が可能です。詳しくは以下の「prepareとquery」の記事を参照してください。
これでDBにテーブルを作成する事が可能です。オプションを駆使して自分の思い通りのテーブルを作成してください。
【PHP】MYSQLでテーブルを作成する!オプション等ご紹介のまとめ
テーブル作成する時の基礎構文は以下でした。
create table テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)
テーブルが存在していない場合のみ作成するのが「if not exists」でした。
数字を自動的に増やしていきたい場合は「AUTO_INCREMENT」でした。
空白を避けたい場合は「NOT NULL」でした。
重複を避けたい場合は「UNIQUE」でした。
PHPで実際行う時はDBのインスタンスを作成し、queryメソッドでMYSQL構文を送る事で可能。