PHPを使ってデータベースに接続
テストデータの準備ができたら、PHPからSQLを実行してみましょう。サンプルソースの「codezine7」フォルダを「C:\xampp\htdocs」以下にフォルダごとコピーし、http://localhost/codezine7/search1.phpにアクセスしてください。以下のような画面が表示されれば、正しく動作しています。
これはrestaurantテーブル内にある情報を、「エリア」と「平均予算」という2つの条件で検索できるアプリケーションです。ただし、現段階ではテーブル内のデータを全検索して表示する機能のみ設定されているため、まだ絞込み検索はできません。
上記URLアクセス時に「MySQL接続エラー」というメッセージが表示される場合、MySQLにパスワードを設定している可能性があります。その場合は「search1.php」をメモ帳などで開き、
$conn = mysql_connect( "localhost", "root", "" );
の部分に、自分で設定したパスワードを記入してください。例えば、パスワードが「passwd」の場合、
$conn = mysql_connect( "localhost", "root", "passwd" );
のように記入します。
それでは「search1.php」をメモ帳で開き、内容を確認していきましょう。
MySQLへ接続
このプログラムはMySQLに接続し、「SELECT * FROM restaurant;」というSQLをデータベースに実行させ、その結果を表示するプログラムです。
まず、以下の部分でMySQLに接続しています。
$conn = mysql_connect( "localhost", "root", "" );
if( $conn == false )
{
die("MySQL 接続エラー");
}
実際に接続を試みているのは、mysql_connectという命令です。localhostは第2回で説明したとおり、自身のコンピュータを表します。mysql_connectは以下の書式で記述します。
mysql_connect(<接続対象のDBがあるマシン名>,<DBユーザ名>,<DBパスワード>)
mysql_connect命令は接続に成功したか否かの結果をプログラムに返します。返された結果のことを「戻り値」と呼びます。これをふまえて、もう一度先ほどのソースを見てみると、下記の部分でmysql_connect命令の戻り値を変数$connに代入していることが分かると思います。
$conn = mysql_connect( "localhost", "root", "mysql" );
接続に成功した場合、データベースの「リンクID」と呼ばれるものが戻り値となります。リンクIDはデータベースへの「入場チケット」のようなものだと考えてください。正しいログインID、パスワードでデータベースへログイン(入場)したユーザだけが、SQLを実行できるということです。
また、接続に失敗した場合は戻り値に「false」という値が入ります。従って、
if( $conn == false )
{
die("MySQL 接続エラー");
}
のif文の条件にある変数$connに戻り値としてfalseが代入され、処理を中断するdie命令で処理を終えます。
文字コードの設定
次に、下記のソース部分に注目してみてください。
mysql_set_charset("utf8");
この命令は、データベースに接続するクライアント側の文字コードを設定する命令です。文字コードとは体系的に定められた文字の数値表現のことで、UTF-8 や Shift_JIS、EUC-JP などが存在します。
通常、PHPファイルの保存文字コードに合わせて指定します。ここでは「search1.php」がUTF-8で保存されているため「utf8」という文字コードを指定しています。同じようにShift_JISなら「sjis」、EUC-JPなら「ujis」と指定します。
データベースの選択
また、MySQLの中にはこの連載で作成した「codezine」データベース以外に、インストール時からあらかじめ複数のデータベースが存在しています。下記の部分では、その中から「codezine」という名前のデータベースを選択するという指定をしています。
mysql_select_db( "codezine" );
この指定は、phpMyAdminの画面上で、左メニューにある[codezine]のリンクをクリックする操作を、PHPにさせるようなものだとイメージしてください。



