SQLをWEBで使う(phpでDBに接続と確認)

SQL SQL
  弁財天先生  
  弁財天先生 
弁財天(べんざいてん)です。
SQLをWEBで使うと、ドキドキ・ワクワクよ。

今日は、SQLをWEBで使える準備をしていきましょう。
さあ、一生懸命、楽しんで、勉強をしていって下さいね。

わたし、弁財天ともに^^

SQLをWEBで使う方法について、最初の段階(1st STEP)を解説します。

SQLとは

SQLとはデータベースを操作するプログラム言語です。
ORACLE、MySQL、PostgresなどのRDBMSを操作できます。
データベースやテーブルを定義するDDL(データ定義文、たとえばCREATE TEBLE文など)と
データを操作するDML(データ操作文、SELECT、UPDATE、DELETEなど)があります。

SQLは多くのプログラミング言語と連携して使用できますので、WEBで使用する一つの方法として
ここでは、PHPからSQLを実行する方法について解説します。

データベースに接続する

PHPからデータベースに接続するには、PDO(PHP標準(5.1.0以降))というデータベース接続クラスを使用して接続します。

コーディング例は次の通りです。

$pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8','dbuser','password');

PDOクラスを生成します。
引数には、「接続先データベース名」「charset」「ユーザ名」「パスワード」を設定します。

生成されたデータベース接続情報は、
$pdo変数に格納され、
以降はこの変数を介してデータベースアクセスを行うことができます。

SQL文を作成する

データベースへの接続ができたら、
SQL文を作成して実際にデータベースへの問い合わせを行います。

SQL文を作成します。

ex.データの検索のためSELECT文を作成する

  1. prepare文でSQLを定義する。

2.execute文で、SQLを実行する。

3.fetch文でSELECTした結果を取り出す。

実際のソースコードは次の通りです。

$pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8','dbuser','P@ssw0rd');
 $qry = $pdo->prepare('select name from usertable');
 $qry->execute();
 foreach($qry->fetchAll() as $q){
 // 取り出したデータの処理
 }

$pdoインスタンスに対して、prepareメソッドで、
問い合わせるSQL文を定義して$qry変数に設定します。

SQL文の定義ができたら
$qry変数に対してexecuteメソッドでSQLを実行します。

SQLの実行結果は、この例ではSELECTした結果データを$qryが受け取るため、
fetch(またはfetchAll)メソッドによってデータを取り出します。

foreach文でループ処理を行うことで取り出したデータを順次処理できます。

取得したデータを出力する。

SQLを実行して取得した結果を出力してみます。

出力の仕方としては、前段のソースコードのforeach文の中にfetchで取り出したデータを
PHP変数に置きかえて格納していく方法で記述します。

実際のソースコードは次の通りです。

<table>
 <tbody>
 <?php
 foreach($qry->fetchAll() as $row){
 echo '<tr>';
 echo '<td>', $row['user_name'], '</td>';
 echo '<td>', $row['address'], '</td>';
 echo '<td>', $row['tel'], '</td>';
 echo '</tr>';
 }
 ?>
 </tbody>
 </table>

SELECT文で取得したデータ、ex) user_name、address、tel を、テーブルデータとして表示する処理をしています。 要素の中に、
PHP文のforeachループの中でfetchで取得した1レコードずつを
$row変数に格納しています。

$row変数には取得データが配列で格納されていますので、
取得したい項目を$row[]で指定して取り出します。

あとは <td>要素で、取得データの変数をかこい、
テーブルにSQLの全取得データを表示します。

以上

弁財天先生
弁財天先生 
本日のクラスはいかがでしたか?
繋がりました? それともダメだった?

大丈夫、やろうとしたのであれば、すばらしいよ。

まず、接続しないと話にならないので、
次回は、他の接続方法などをお話ししますね。

楽しみにね。

コメント

タイトルとURLをコピーしました