PHPを介してMySQLデータベースでテーブルを作成してみます。
■環境
・Windows10
・Visual Studio Code 1.53.2
・レンタルサーバー「ヘテムル」
・FTPクライアント「FileZilla」
■レンタルサーバーでMySQLデータベースを作成する
PHPを介してMySQLデータベースへの接続を行ってみますが、その前にレンタルサーバーでMySQLデータベースを作成します。今回はレンタルサーバー「ヘテムル」を使用します。
「ヘテムル」のコントロールパネルのログイン(https://admin.heteml.jp/)画面で、「ヘテムルID」と「パスワード」を入力し、「ログイン」ボタンをクリックします。
クリックすると、コントロールパネルの右側にメニューがありますので、「各種設定」から「データベース」をクリックします。
クリックすると、「データベース」の管理パネルが表示されますので、「データベース作成画面へ」というボタンをクリックします。
クリックすると、「データベース作成画面」が表示されます。こちらの画面で「データベース名」と「接続パスワード」を入力します。入力後、「メモ」欄がありますので、データベースに関することのメモを入力する場合は行います。その後、「データベースを作成する」ボタンをクリックします。
クリックすると、「admin.heteml.jpの内容」というポップアップが表示されます。「データベースを作成します。よろしいですか?」というメッセージが書かれていますので、「OK」ボタンをクリックします。
クリックすると、「データベース[データベース名]の作成が完了しました」と表示されます。これでデータベースの作成は完了となります。完了後、「戻る」ボタンをクリックします。
クリックすると、「データベース」の管理パネルが表示されますので、作成したデータベースが表示されていますので、この表示されているところでサーバー名「mysql○○○.phy.heteml.lan」といった記載がありますので、こちらの情報をコピーして保存します。
■PHPを介してMySQLでテーブルを作成する
データベースの作成が完了しましたので、PHPを介してMySQLでテーブルを作成します。まずは、Visual Studio Codeなどのコードエディターを開き、PHPのコードを書いていきます。
■コード
<?php
$servername = "ホスト(サーバー)名";
$username = "サーバーのユーザー名";
$password = "サーバーのパスワード";
$dbname = "_test_1a(作成したデータベース名)";
//接続を作成する
$conn = new mysqli($servername,$username,$password,$dbname);
//接続を確認する
if($conn -> connect_error){
die("接続に失敗しました: ".$conn->connect_error);
}
//MySQLテーブルを作成する
$sql = "CREATE TABLE test_table(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
//MySQLに接続しテーブルの作成が真だった場合
if ($conn->query($sql) === TRUE){
echo "テーブル「test_table」が正常に作成されました";
} else {
echo "テーブルの作成中にエラーが発生しました: " . $conn -> error;
}
//接続を閉じる
$conn->close();
MySQLでテーブルを作成する際は、今回はsqlという変数を定義し、その中にCREATE TABLE文を使用し、「CREATE TABLE test_table()」と記述します。「test_table」というのが今回のテーブルの名前です。
作成したテーブルの中に「id」、「firstname」、「lastname」、「email」、「reg_date」という5つの列を、今回は作ります。
「id」の列では、INT(6)と記述し、整数型を6桁の数値として表示し、UNSIGNED(符号なし)と記述することで、範囲を0から始まる「0 ~ 255」(正の数のみ)までにすることができます。さらに、AUTO_INCREMENTと追加し、レコードが追加されたとき、整数を自動的に付与されるようにします。最後にPRIMARY KEYと追加することで、主キー制約となります。
次に「firstname」、「lastname」、「email」の列では、VARCHARと記述し、可変長の文字列の追加します。括弧内では0 から 65,535 までの値で指定できますが、今回は「firstname」と「lastname」は「30」、「email」は「50」と指定しています。最後にNOT NULLと記述し、NULL(何も入っていない状態)を格納できなくなる。
最後に「reg_date」の列では、「TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP」と記述することで、タイムスタンプ(TIMESTAMP)が押され、新規追加、更新のどちらでも日時が更新されるようになります。
■実行・検証
このphpを「index.php」で保存します。保存後、FTPクライアントを使用し、ヘテムルレンタルサーバーのサーバー上に「index.php」をアップロードし、表示させてみます。
表示させてみると、MySQLに接続しテーブルの作成が成功した時に表示される文字列が出力されました。
出力された後にphpmyadminへのログインを行い、データベースにテーブルが作成されたのかを確認すると、今回の指定した構造でテーブルが作成されていることが確認できました。