WordPress プラグイン作成〜DBを使用する〜

今回はWordPressプラグイン作成でDBを使用する場合の記事を記載します。

DBは何に使う?

はっきり言って、何にでも使用できます。例として以下のようなものが挙げられます。

  1. ユーザー管理、ログインを使用してユーザー専用ページ、機能などの実装に使用します。
  2. データの集計、今回作成しようとしている「アンケートプラグイン」でも使用します。クリックした時に対象になるデータをDBに登録、登録した情報を元にアンケートの集計を行います。
    3, WordPressのようなCMSの投稿記事の管理(表示)
  3. 独自調査のまとめなど。。。

挙げればきりがないので、ここら辺にしておきますが。こんな感じで使用できます。

プラグインで使用するには?

一応、プラグインの作成に関しては以下の記事を参照してください。
・ローカルサーバーを立てる
・ダッシュボードにプラグイン画面を追加する
・プラグインでダッシュボードにメニューを追加する
・プラグインでダッシュボードにメニューを追加する2
・プラグインでダッシュボードにメニューを追加する3

そして、DBの使用方法に関して設計をします。
最近発見したのですが、このファイルがなかなか設計しやすいと思いご紹介いたします。

上のようなものですが、子供用だと思って甘くみてはいけません。
作るものを考える時に初めに「結論(結果)」をイメージすると思いますが、以下のような手順で使用すれば、大人も十二分に使用できるツールだと思います。

  1. 「結論」を真ん中の酢ページに記載します。
  2. 「結論」のものを作成するのに必要な部品を両サイドに書き出します。当然線を引っ張るなどの手間を加えてやれば、それだけ直感的に理解できるものになると思います。
  3. そして、作業手順を適当な形で記載してやります。書き方はものによるのでなんとも言えません。。。

しかし、このような形でかかれた設計図は「直感的」で「シンプル」なものになるのでユースケースとしても使用することができると思います。

プラグインへのDB作成

今回は、わかりやすい方法で、自分がそのように使用するのですが。。。

プラグインを有効にした時に作成

上記のように、プラグインを有効にした時に必要になるDBを作成するようにしようと思います。
懸念点としては、プラグインを有効にした時に「毎回テーブル(DB)が作成されると困る」というところです。。。

とりあえずは、テーブルの設計をします。
使用したいデータを列挙します。例えばログイン機能であれば、ID、ユーザー名、パスワード。。。などです。今回は使用しませんが、「パスワード」はDBのデータが盗まれたりすると大変危険(情報漏洩)なのでパスワードの登録は暗号化を使用します。

テーブルの作成方法

そして、設計ができたら「プラグインを有効にした時に作成する」プログラムを作ります。
先ほど懸念していた「毎回テーブルが作成されるのでは?」という部分も解決できます。

SQLを使用する

DBサーバーの名前にもある通り「SQL」を使用してテーブルを作成します。
SQLはDB操作に使用するプログラミング言語です。有名なものとしてはMySQLもそうでるがORACLEもあります。

ますはテーブル作成

テーブルを作成するのには「Create Table文」を使用します。今回はWordPressを使用しているのでMySQLのドキュメントをリンクに貼り付けています。
書き方は決まっていて下のように書きます。ちなみにコメントは「#」と「--」が使用できるようです。

CREATE TABLE 
pet  -- 作成するテーブル名
(name VARCHAR(20), -- "name"というカラム名
owner VARCHAR(20), -- "owner"は20文字分
species VARCHAR(20),
sex CHAR(1),  -- 性別は一文字
birth DATE,  -- 誕生日は日付型のデータ
death DATE);

上のような文でテーブルを作成することができます。
そして、懸念点の解決方法としては以下のようにCreate Table文に「if not exists」をつけてやれば解決です。
MySQLのCreate Table文の文法
create table 自作テーブル if not exists
自分の作成したSQL(Create Table文)は下のようになりました。

create table if not exists questionary(
    question_id int not null PRIMARY KEY AUTO_INCREMENT,
    question varchar(60),
    answers varchar(60),
    hrml_class varchar(15),
    html_style varchar(15),
    click_count bigint);


これはローカルのDBサーバーに作成したので公開されていません。

ポイント

テーブルのキーになるカラム(question_id)はプライマリキーなのでこのテーブルでは必ず一意(テーブルの中では1つしか存在しない)なのでquestion_id=1というのは必ず1つになります。

そして、「AUTO_INCREMENT」をつけているのでデータが登録された時にバックエンドプログラムがquestion_idの値を追加してくれるというわけです。

まとめ

今回はアンケートプラグインで使用するDB(テーブル)を作成しました。使用したプログラミング言語は(SQL)というものです。
SQLはDB操作のためにいろんなことができます。メールの送信などもできます。
そんなわけでSQLが使えると色々と便利です。

でわでわ。。。