MySQL (2)
MySQLは、MySQLの中にデータベースを作ってその中にテーブルを作ってテーブルの中にデータがあるって感じ。
↑イメージ図作ってみた。
データベース作成には、まずMySQLでサーバに接続する。
MySQL Command Line Clientを開く。
そして作成する前に、どういったデータベースがあるのか確認する。
show databases;
データベースを作成するには、
create database データベース名;
⇒「Query OK」で成功。
データベースを作成したら、次にデータベースに接続する。
⇒接続以降に行われる操作のときに、データベースが省略された場合にデフォルトで使用されるデータベースを設定するということ。
use データベース名;
「Detabase changed」と表示されたら接続成功。
次に、テーブルを作成する。
↑この部分!
create table テーブル名 (
フィールド名 データ型,
フィールド名 データ型,
フィールド名 データ型
);
フィールド名にはIDとかカテゴリー名とか。
数値や文字列などは種類に応じてデータ型を指定する。
データ型 | 説明 |
---|---|
INT | 数値 |
CHAR | 文字データ(文字数) |
VARCHAR | 文字データ(バイト数) |
DATE | 日付 |
DATE TAME | 時刻 |
などなどなど…
ちなみにテーブル作成時にこれ役に立ったからメモ。
id int auto-increment primary key
=レコード追加ごとにIDというフィールドを基準として毎回数字を増やしていく。
テーブル一覧を見るには、
show tables;
テーブルの中身のフィールドを確認するには、
desc テーブル名;
テーブルを削除するには、
drop table テーブル名;
テーブルにレコード(データ)追加するには、
insert into テーブル名(フィールド名) values(値);
フィールド名や値は順に書く。
レコード(データ)確認するには、
select フィールド名 from テーブル名 (=値 where 抽出条件);
()内省略可能。
レコード(データ)更新するには、
update テーブル名 set フィールド名='変更内容' where 抽出条件;
レコード(データ)削除するには、
delete from テーブル名 where 抽出条件;
最後に、MySQLコマンド終了は、[exit]や[quit]で行う。
<参考にしたもの>
MySQLでデータベースを作成する方法【CREATE DATABASE文】
MySQL
MySQLは、世界でもっとも利用されている「データベース管理システム」のこと。
しかも、オープンソースなのです。低コスト!
MySQLは、小さいアプリケーションから巨大なアプリケーションまですべてに対応できるほどの拡張性をもっている。
また、Linux、Mac、Windowsなどを問わず動作する。
MySQLのダウンロード(Windows環境)
・MySQLサイトへ。
・上の[ダウンロード]をクリック。
・一番下にあるMySQL Community Edition (GPL)の[Community (GPL) Downloads »]をクリック。
・一番上の[MySQL Community Server]をクリック。
・次のようなページがあるので、
↑の下にある青い[Go to Download Page >]をクリック。
・MySQLのインストーラには、上のWeb経由でダウンロードしながらインストールするインストーラと下のインターネットが繋がっていなくてもインストールできるインストーラがある。ここでは、Web経由でインストールするので上の[Download]をクリック。
・「Oracle Web account」のログインを促される。
ログインしなくても(アカウントを持っていなくても)インストーラをダウンロードできるので、その場合は下の方の[No thanks, just start my download.]をクリック。
MySQLのインストール(Windows環境)
・ダウンロードしたインストーラを実行。
・ライセンスの確認をして[Next]。
・セットアップタイプの選択。
・インストールするものを選択する画面が表示される。
・必要なものを選択してから緑色の右矢印をクリック。右側に追加されていく。
・MySQLをインストールするディレクトリとデータを設置するディレクトリのパスを設定する画面が表示される。終わったら[Next]をクリック。
・問題が無ければ[Execute]をクリック。インストールが開始される。
・インストールしたMySQLの初期設定を行う。[Next]をクリック。
・コンフィギュレーションタイプとMySQLとの通信に関する設定画面が表示される。
・rootアカウントのパスワードの設定とユーザー追加の為の画面が表示される。rootアカウントのパスワードを設定をする。設定が終わったら[Next]をクリックする。
・MySQLをWindowsのサービスとして動かすかどうかの設定画面が表示される。
・最終確認画面で、問題がなければ[Execute]をクリック。
・[Finish]で初期設定完了。
今回は必要最低限におさめました。
全てをアウトプットすればいいわけじゃないな~て思って。
にしても分かりずらいやね(笑)
まだまだ(笑)
<参考にしたもの>
PHP : フォーム処理
HTMLで構成されたフォームからデータを送信し、PHPプログラムで受信する。
HTMLフォームを処理する手段は、PHPの最も強力な機能のひとつ。
ちなみに、フォームと所定の形式をもった書式、入力欄のことね。
HTMLフォーム
まずは、HTMLフォームについて簡単に説明。
<form action="PHPプログラム" method="post">
名前: <input type="text" name="name" />
<input type="submit" />
</form>
▽▽▽▽▽▽▽▽▽▽こんな感じのフォーム▽▽▽▽▽▽▽▽▽▽
これで簡単なフォーム完成。
作成方法はhtmlのファイルを作成し、上記のHTMLを書くだけ。
form タグを使用すると入力フォームを表示できる。
<form action="〇〇〇.php" method="post"></form>
action...データの送信先
method...データの送信方法
フォームでのデータの送信方法(PHPにおけるデータの受信方法)は二通り。
・GETリクエスト…データがURLで引き渡される
・POSTリクエスト…データがURLで引き渡されない
<input type="text" name="sample" />
input タグの type に text を指定すると、一行入力項目を表示する事ができる。
name で指定したキーワードを基に、PHPでデータを受け取る。
<input type="submit" />
input タグの type に submit を指定すると、データ送信ボタンを表示する
value で指定するとその語句がボタンに表示される
PHPでのデータ受信
PHPでは、フォームから送信されたデータは自動的に特別な連想配列に格納される。
ブラウザからPOSTメソッドで送信されたデータは、$_POSTという連想配列に格納される。
GETメソッドで送信されたデータは、$_GETという連想配列に格納される。
POST形式、GET形式のどちらも使用する場合には$_REQUESTが便利。POST形式のデータもGET形式のデータも両方格納される。
※$_REQUESTを使用した場合、せっかくPOST形式で送信しているデータをGET形式でURLから送信できる事になってしまい、セキュリティ的にあまりお勧めできないらしい。
送信されたデータを表示させる際、HTMLが反映されないようにしなければならない。
<,>,$," などをブラウザで文字列として表示させるには、 htmlspecialchars 関数を使用する。
htmlspecialchars($_POST["name"])
続けて ENT_QUOTES を入力すると ' (シングルクォート)も変換される。
この処理は、送信されたデータを表示させるときには必ず行うこと。
そのままにすると、HTML、JavaScriptをそのまま解釈してしまうので。
改行が含まれる文字列を表示させるには、 nl2br 関数を使用する。
nl2br($_POST["name"])
これで、文字列中の改行文字が
に変換されて返されるようになる。
PHPによっては ',",\ など自動的にエスケープすることがある。
それをなくすのは、 stripslashes 関数。
逆にエスケープするには addlashes 関数。
〈参考にしたもの〉
PHP : ファイルの入出力
PHPはデータ保存の際、データベースがよく利用されている。
が、テキストファイルにもデータを書き込むことができる。
ファイルを扱う命令はいくつかある。
まずは、 fopen 関数。
fopen 関数はファイルを新規作成したり開くことができる。
引数に「開きたいファイル」と「モード」を指定できる。
fopen("開きたいファイル"orパス,"モード");
〈主なモード一覧〉
モード | 説明 |
---|---|
r | 読み込みのみ |
r+ | 読み込み/書き出し |
w | 書き出しのみ |
w+ | 読み込み/書き出し |
a | 書き出しのみ(追記) |
a+ | 読み込み/書き込み(追記) |
また、開いたファイルは fclose 関数で閉じる。
$fp=fopen("開きたいファイル"orパス,"モード");
fclose($fp);
ファイルの読み込み
モードに r を指定すると読み込みモードになる。
引数に指定したファイルから1行読み込むことができる fgets 関数もここで紹介。
<?php
$fp=fopen("開きたいファイル","r");
while ($line = fgets($fp)) {
echo "$line<br />";
}
fclose($fp);
?>
これで開きたいファイルの内容が改行区切りですべて表示される。
ちなみに、ここででてきた while 文は繰り返し処理を行うもの。
while (条件式){
実行する処理1;
実行する処理2;
}
while 文は指定した条件式が真(true)の間は繰り返す。
(どこかでまた詳しくやるかも?)
ファイルへの書き込み
モードに w を指定すると書き込みモードになる。
書き込みモードでは、 fwrite 関数でファイルの内容を書き換えることができる。
<?php
$fp = fopen("開きたいファイル", "w");
fwrite($fp, "ファイルへの書き込み内容");
fclose($fp);
?>
開きたいファイルの内容が「ファイルへの書き込み内容」になる。
開きたいファイルには、書き込み権限を与えておくこと!
ファイルへの追記
モードに a を指定すると追記モードになる。
追記モードでは、 fwrite 関数でファイルの内容に追記できる。
<?php
$fp=fopen("開きたいファイル","a");
fwrite($fp,"ファイルの追記内容");
fclose($fp);
?>
追記モードは。プログラムが実行されるたびにファイルの末尾に追記が行われる。
ファイルを扱う方法の中にはもっと簡単にできるものがある。
<?php
echo file_get_contents("開きたいファイル");
?>
⇒「開きたいファイル」の内容が表示される。
各行末に改行タグを付加して順に表示することができない。
<?php
file_put_contents("開きたいファイル", "ファイルへの書き込み内容");
?>
⇒「開きたいファイル」に「ファイルの書き込み内容」が書き込まれる。
内容全体を書き換えてしまうのでファイルの末尾にデータを追記することはできない。
〈参考にしたもの〉
PHP基礎
PHPは、Web作成のために用いられることの多いプログラミング言語の1種。
Web開発に適している、オープンソースの汎用スクリプト言語。
動的にHTMLデータを生成することによって動的なウェブページを実現。
HTMLはHyper Text Markup Language(ハイパーテキスト・マークアップ・ランゲージ)の略で、Webページを作るための最も基本的なマークアップ言語のひとつ。
ほとんどのWebページがHTMLやCSSという言語で見た目が作られる。
WebページのほとんどがHTMLで作られている。
PHP記述方法
・開始タグと終了タグ
<? ~ ?>
<?php ~ ?>
どちらかで囲む。
最もシンプルなのが上のほう。
XMLやXHTMLにPHPを埋め込む場合は、下のほうを使用することが標準規格で決められてる。
<?php
print("Hello World!");
?>
print
...関数 = 命令("Hell World!)
...引数、()で囲む = 関数に渡す情報;(セミコロン)
...きまりごと
関数が処理して戻り値という情報を返す。
とまぁ、こんな感じ。
・文の記述
PHPスクリプトは文で構成されている。
代入、関数呼び出し、条件文、空の文が使用できる。
命令文の最後のセミコロン(;)は任意。
複数の命令文はセミコロン(;)で区切る。
・コメントの記述
コメントアウトしたい部分は1行なら先頭に//をつける。
複数行なら/* ~ */ で囲む。
文字コード
文字コードは、コンピュータ上で文字を利用するために各文字に割り当てられるコードのこと。
いろんな種類の文字コードがある。
・ASCII
・JISコード
・シフトJISコード
・Unicode
・EUC
・UTF-8
などなどなど、、、
文字化けする理由に文字コードがある。
HTMLファイル自体の文字コードとブラウザが解釈した文字コードが異なるとき文字化けは起きる。
文字化け発生時にはファイルの文字コードを確認すること。
エディタによってデフォルトの文字コードは異なる点に注意。
_____
Linuxが落ち着いたところで、PHPの勉強を主流に始めていくことにしました。
なんかあっちこっち飛び回っている気がしないでもないけど、、(笑)
というかひとつ言いたい。LPICを取得するのに、まずお金をためないといけないという壁にぶちあたりました。あぁぁぁ。