2019年08月28日

データベース事始め。

約2年前の5月頃から、あるコミック作品の情報をまとめて、検索出来るようにしたいと思い、
ちょうど利用していたレンタルサーバに、MySQLも付随していたので、それを利用して作る事にしました。
データベースは初めての挑戦でした。
ものの本を見ては、試行錯誤しつつ、情報を登録したり、PHPのコードを書いたり。
そのために参考にしたのは、以下の書籍になります。

<参考書籍>
ソーテック社「詳細!PHP7+MySQL入門ノート」
マイナビ「PHP7+MariaDB/MySQLマスターブック」

また、環境構築に関しては以下が役に立ちます。

↓MySQLのサイト(英語版)
https://www.mysql.com/
↓MySQLについて(Wikipedia)
https://ja.wikipedia.org/wiki/MySQL
↓PHPについて(Wikipedia)
https://ja.wikipedia.org/wiki/PHP_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)

趣味の範疇ではありますので、非常に他愛ないものを作ってしまった、と思ってはいるのですが、
まぁそこそこ便利に使えるかな、と思っています。
プロの方ならもっと高度なものが構築できたと思いますが…。

それにしてもオープンソースだからこそなのか、日進月歩でバージョンが変わるのが早い…。
PHPに関しては、1年前の春ごろに、バージョンが5.xから、7.xになっていたので、
プログラム周りは中身を作り直す事になりましたが…。

↓以下のサイトに、データベースを使う利点などについての質問と回答がありました。
https://teratail.com/questions/38257

上記のサイトにもありましたが、PHPとMySQLは色んな書籍でも紹介されているように、
親和性は高い、と思われます。
ネットで検索すれば、様々な情報も出てきますので、勉強もしやすい言語とデータベースではないかと。

↓参考までに、作ってみた検索データベースはこちらになります。
https://tomobikicho-4cho-me.com/info/data/gen_data.php
https://tomobikicho-4cho-me.com/info/data/ani_data.php

私も最初はちょっと躊躇してましたが、やってみると面白いものです。
欲しい情報を引き出す速度が、やっぱり違いますね。
…多分、もっといいコードの書き方とかあると思うのですが、私はこのくらいが精一杯…。

PHPとデータベースに興味があれば、構築方法も色々あると思いますので、
挑戦してみるのも、新たな発見があって、楽しいものです。
ただ、次にバージョンが大幅に変わって、作り直す手間が発生したら、出来るかどうか…(汗)
posted by もの実高志子 at 19:58| Comment(0) | プログラミング

2019年08月21日

SJISからUTF-8への移行。

一昔前ですと、PerlのCGIは「Shift_JIS」が主流で、その後仕事では「EUC-JP」にする事が多くなりました。
もうここ数年ですと「UTF-8」がメインになりつつあるようです。
そこで10数年経った自前サイトのCGIも、SJISからUTF-8へ移行させよう、という事にしました。
まずは
・「jcode.pl」ライブラリはUTF-8に対応していないので、それに代わるものを入手
「Jcode.pm」モジュールで、それは解決しました。
・CGIファイルでJcode.pmが使えるよう、書き換え
この部分↓(直下のlibディレクトリに入れているとして)
require './lib/jcode.pl';
を↓以下のように書き換え
use lib './lib';
use Jcode;
・次に以下を書き換え
&jcode'convert(*value,'sjis');
      ↓
Jcode->new($value)->h2z->utf8;
・Content-typeヘッダも以下に書き換え
print "Content-type: text/html;charset=UTF-8\n\n";
・ファイル自体を「UTF-8N(BOM無し)」に変更
※BOMについては、以下のサイトで解説されています。
https://uxmilk.jp/48923

レンタルサーバで確認するのも何だったので、自宅マシンをNASとして動作テスト。
※NASについては、以下のサイトで解説されています。
https://www.iodata.jp/product/nas/info/landisk/nas.htm
テストする前にPerlやPHPやNAS用のアプリをインストールして、環境構築。
ローカル環境で動作確認が出来ました。

※コードの書き換え部分ですが、上記は一例ですので、使えない場合もあります。
 その際には検索したり書籍で調べてみて下さい。

必要に応じて、Windowsの場合は、環境変数の設定なども必要になりますので、そのあたりは
各々調べてみて下さい。

最初動作確認したら、見事に文字化け(汗)
掲示板だったので、記録ファイルを同じUTF-8にして解決。
動作も…おお、ちゃんと書き込み、出来た!
という次第で、ちょっと時間はかかりますが、NASで動作確認完了したところで
レンタルサーバにアップロード。問題無く動いてくれました。

私自身、今は趣味の範疇でこういった事をやってますので、正直知識はあまりありません(汗)
その際は人に聞くよりある程度までは自分で調べてやっています。
大体は検索で事足ります。
検索ワードを色々変えて探してみれば、簡単な問題ならほぼ解決出来るので、
そういったクセをつけるのも大事だと思っています。あくまで持論ですが(汗)

どうしてもわからない!となったら、質問サイトも色々ありますので、
何をしたいか、こうやってみたけどダメでした、こういった方法でやってますが…
などなど、聞きたい情報は(長くなり過ぎない程度にまとめて)
部分的なコードも添えられたら添えて、聞いてみるのもイチ方法かと。
ただ、これはあくまで最終手段…かな…。
自分で調べた方が、うんと勉強になりますので…。

えーっと、上記はあくまで一例ですので(汗)
本当に!一例ですので、鵜呑みにせず、それぞれの方法を見つけてみて下さい。
※ご質問等あってもお答えできかねますので…よろしくお願いします m(_ _)m
posted by もの実高志子 at 06:28| Comment(2) | プログラミング