PHPからMySQLデータベースに接続する方法。

PHPにはMySQLを利用するための関数が、あらかじめ用意されています。実はデータベースの基本的な操作は7つの関数だけで行なえます。

今回はその内の6つについて解説します。もちろん便利なMySQL関数はたくさんありますが、最初に覚えるのはこれだけで十分です。

しかも関数は使うパターンが決まっているので、一度基本的なプログラムを作ればあとは流用することができます。

またMySQLのデフォルトでは、パスワードが無い「root」ユーザーが設定されているので、これを接続に使うことにします。

mysqlデータベースのuserテーブル
php-154.gif


【1】sample100 フォルダを作成します。

php-166.gif


【2】新たに select.php を作成します。

php-169.gif

*「\」はWindowsではエンマークのことです。

保存先 C:\phpdev\www\test\sample100
ファイル名 select.php

<?php
  $url = "localhost";
  $user = "root";
  $pass = "";
  $db = "SampleDB050";

  // MySQLへ接続する
  $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");

  // データベースを選択する
  $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。");

  // クエリを送信する
  $sql = "SELECT * FROM T01Prefecture";
  $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

  //結果セットの行数を取得する
  $rows = mysql_num_rows($result);

  //結果保持用メモリを開放する
  mysql_free_result($result);

  // MySQLへの接続を閉じる
  mysql_close($link) or die("MySQL切断に失敗しました。");
?>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS">
    <title>全件表示</title>
  </head>
  <body>
    接続ID:<?= $link ?><br />
    選択の成否:<?= $sdb ?><br />
    結果ID:<?= $result ?><br />
    行数:<?= $rows ?><br />
  </body>
</html>



*上記のプログラムはページの都合上、インデント(字下げ)が半角スペース2つになっていますが、実際には半角スペース4つにするのが好ましいです。インデントはプログラムの動作には影響しません。


【3】C:\phpdev にある 2K-NT-XP-phpdev_start.bat をダブルクリックして、phpdev を起動します。

php-02.gif

準備ができたら作成したPHPプログラムを実行してみましょう。


【4】ブラウザのアドレスに http://localhost/test/sample100/select.php と入力し、実行します。


【5】select.php の画面が表示されたら接続成功です。

php-170.gif

*表示されている戻り値に注目してください。


【解説】
PHPのプログラムとHTMLをできるだけ分離して、シンプルにしました。HTMLでは変数の値を出力しているだけです。

関数には「戻り値」(返り値)のあるものがあり、その戻り値が次の関数の「引数」に使われることがあります。そこで今回はどんな戻り値なのか分かりやすいように表示しています。


(1)変数に各種設定を代入している部分です。
$url = "localhost";
$user = "root";
$pass = "";
$db = "SampleDB050";
この部分を書き換えるだけで、他のデータベースにも接続できます。


(2)MySQLへ接続する部分です。
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");
成功した場合は接続IDが、失敗した場合は FALSE(0) が返ります。


(3)データベースを選択する部分です。
$sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。");
成功した場合は TRUE(1) が、失敗した場合は FALSE(0) が返ります。この戻り値は他の関数で使わないので、「$sdb =」は無くてもかまいません。


(4)クエリを送信する部分です。
$sql = "SELECT * FROM T01Prefecture";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);
SELECT文では成功した場合は resource が、エラー時には FALSE(0) が返ります。
UPDATE文, DELETE文では成功した場合は TRUE(1)が、エラー時には FALSE(0) が返ります。


(5)結果セットの行数を取得する部分です。
$rows = mysql_num_rows($result);
成功した場合は結果セットの行数が、失敗した場合は FALSE(0) が返ります。


(6)結果保持用メモリを開放する部分です。
mysql_free_result($result);


(7)MySQLへの接続を閉じる部分です。
mysql_close($link) or die("MySQL切断に失敗しました。");


(8)HTMLに変数の値を出力している部分です。printの代わりに「<?= 変数名 ?><」で簡単に出力できます。

接続ID:<?= $link ?><br />
選択の成否:<?= $sdb ?><br />
結果ID:<?= $result ?><br />
行数:<?= $rows ?><br />


*各関数についての詳細はPHPサイトでマニュアルをご覧ください。
http://www.php.net/

当講座の「Step3・関数の調べ方」に調べ方を書いています。


スポンサードリンク

スポンサードリンク






PHP初心者入門講座TOPへ