Tak1016さんの回答が素晴らしくわかりやすいので、問題ないと思います。
下記では言語的なアプローチで回答します。
英語の意味そのままなのですが、英語の意味があいまいだとなかなか想像しづらいかもしれません。
connection(コネクション)
連結(すること)、結合、連接、(電話の)接続、連結するもの、(機械の)つなぎ、(因果的・論理的な)関係、関連、(人と人との)間柄、関係
handle(ハンドル)
取っ手、ハンドル、柄、取っかかり、利用される機会、(Sir などの)肩書き、名前、(織物の)手ざわり
つまり、
■DBコネクション(DB connection)
DBとつながっている状態のことです。プログラムのソースコードの中には登場しません。
■DBハンドル(DB handle)
プログラムソースコード中で、DBをハンドリングする(扱う)ための値やオブジェクトのことです。
また、DBリソースポインターや、単にDBリソースとも呼ばれます。
つまり、DBコネクションをオープン(開始)して、DBハンドルを利用してDBと通信するわけです。
なんで、DB使うのにコネクションとか、ハンドルとか出てくるのか?
PHPとDBは別々のソフトウェアで、お互い決められた原則ルール(プロトコルと呼びます)で通信しなければなりません。
また、この原則ルール(プロトコル)はプログラムが違っても同じなわけです。
どのようなプログラムでも異なったソフトウェアなどと通信や連携する場合、大体やることは同じです。プログラムの関数名が違ったりするだけです。
コネクションを開始しただけだと、読みたいのか、編集したいのか、消したいのかわかりませんし、それぞれの組み合わせもあります。よって、コネクションオープンと、実際の読み出しなどの通信・連携とは分かれているわけです。
- コネクションオープン
- コネクションオープンしたときのハンドル(リソースまたは、リソースポインター)を利用して通信・連携する
- コネクションクローズ(プログラムによっては自動的に閉じられるものもあります)
php
1// PDOでDBに接続する例
2$handle = new PDO('mysql:dbname=データーベース名;host=localhost', 'ユーザー名', 'パスワード');
3
4foreach ($handle->query('SELECT * FROM テーブル名;') as $rows) {
5 echo implode(",\t", (array)$rows)."\n";
6}
たとえば、PHPでファイルを読み込む場合も同様のことが起きます。
ファイルはウィンドウズなどのOS(オペレーション・システム)で管理されていて、PHPからファイルを扱うにはOSに聞かないとわからないためです。
php
1// ファイルの中身を表示する例
2$handle = fopen('ファイル名', 'r');
3echo fread($handle, 1024);
4fclose($handle);
5
6// ファイルポインター(file pointer)を略して下記のような変数を設定する場合が多いです
7$fp = fopen('ファイル名', 'r');
8echo stream_get_contents($fp); //バイト数を指定しないでファイルの中身全部を読み出します
9fclose($fp);
10
11// 上記と同じで、file_get_contents()内部でfopen()などを自動的に行っています
12echo file_get_contents('ファイル名');
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/01 08:09