今回はhtmlからデータベースに対して、テーブルを作成してみようと思います。
XAMPPをインストールした場合、データベース(MySQL)もインストールされていますので、もしXAMPPをインストールしていない場合は、こちらの記事も参考にしてみてください。
【準備】データベースを作る
XAMPPを起動して、ApacheとMySQLをStartします。
次に、MySQLのAdminをクリックして、phpMyAdminを起動します。
下記画像①の新規作成をクリック、②のtestを入力、③の作成をクリックします。
以上で、データベースを作成できました。
データベースにテーブルを作成する。
ここから本題である、データベースに対してテーブルを作るプログラムを作ります。
まずはサンプルコード。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>データベース接続</title>
</head>
<body>
<form name="myForm" method="post" action="study_database_edit.html">
<select id="code_selection" name="code">
<option value="1">テーブル作成</option>
<option value="2">テーブル一覧</option>
<option value="3">テーブル削除</option>
</select>
<p><label>テーブル名</label><input type="text" name="name" placeholder="hogehoge" pattern="^[0-9A-Za-z]+$"></p>
<p><input type="submit" value="実行"></p>
</form>
<?php
try{
if(isset($_POST['code'])==true){//処理コードがあるか
switch($_POST['code']){//処理コード別に処理
case 1: //データベースにテーブルを作成する処理
if(isset($_POST['name'])==true){
//データベースにアクセス
$dsn = 'mysql:dbname=test;host=localhost;charset=utf8';
$user = 'root';
$password ='';
$dbh = new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//データベースに対して実行するSQL文を作成
$sql = 'CREATE TABLE IF NOT EXISTS '.$_POST['name'].' (id INT(11) NOT NULL auto_increment PRIMARY KEY,hogehoge TEXT) DEFAULT CHARSET="utf8"';
//SQL文を実行
$result = $dbh->query($sql);
}
break;
}
}
}
catch (Exception $e){//処理でエラーが発生した時はこちらを実行する
print $e->getMessage();
}
?>
</body>
</html>
上記ファイルをC:\xampp\htdocs\testに保存しましょう。
そして、アクセスします。(ブラウザのURL欄にhttp://localhost/test/study_database_edit.htmlを入力。)
これで、データベースにテーブルを作成するプログラムが完成しました。
要点解説
17行目から44行目がphpの処理です。
実行をクリックすると19行目の$_POST[‘code’]にデータが入りますので、isset関数がtrueを返します。
21行目のswitchは、セレクトボックスで選んだ処理で分岐します。
今回はcase 1:のデータベースにテーブルを作成する処理しかありません。
(後で改造する予定。
23行目は、テーブル名が入力されているかのチェックです。
あとは、データベースを使用する準備、SQL文作成(下記画像参考)、実行です。
25行~27行目のパスワードなどは、本来はここに書くべきではありませんが、1ファイルにまとめたかったのでやむをえず。。。
iclusta+の場合は、$dsnにポート番号が必要です。これは当時、かなりはまりました。
例:$dsn = ‘mysql:dbname=test;host=localhost;port=12345;charset=utf8’;
テーブル名を入力して実行を押した後、テーブルができたかphpMyAdminを確認しましょう。
無事にテーブルを作成できました。
左側のaaaをクリックすると、テーブルの詳細が見れます。
以上、phpからデータベースにテーブルを作成する方法でした。