SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング未経験から始めるPHP入門

PHPを使ってデータベースを操作しよう!
プログラミング未経験から始めるPHP入門(7)

第7回

ダウンロード サンプルソース (4.0 KB)

PHPを使ってデータベースに接続

 テストデータの準備ができたら、PHPからSQLを実行してみましょう。サンプルソースの「codezine7」フォルダを「C:\xampp\htdocs」以下にフォルダごとコピーし、http://localhost/codezine7/search1.phpにアクセスしてください。以下のような画面が表示されれば、正しく動作しています。

 これはrestaurantテーブル内にある情報を、「エリア」と「平均予算」という2つの条件で検索できるアプリケーションです。ただし、現段階ではテーブル内のデータを全検索して表示する機能のみ設定されているため、まだ絞込み検索はできません。

「http://localhost/codezine7/serch1.php」アクセス時の画面。全検索の結果(テーブル内の全てのデータ)を表示する
全検索の結果(テーブル内の全てのデータ)を画面に表示
※注

上記URLアクセス時に「MySQL接続エラー」というメッセージが表示される場合、MySQLにパスワードを設定している可能性があります。その場合は「search1.php」をメモ帳などで開き、

$conn = mysql_connect( "localhost", "root", "" );

の部分に、自分で設定したパスワードを記入してください。例えば、パスワードが「passwd」の場合、

$conn = mysql_connect( "localhost", "root", "passwd" );

のように記入します。

 それでは「search1.php」をメモ帳で開き、内容を確認していきましょう。

「search1.php」の内容
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の書式
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にさせるようなものだとイメージしてください。

mysql_select_db( "codezine" );は、phpMyAdminの画面上で枠で囲んだ部分をクリックするのと同じ
以下の操作は、mysql_select_db(

次のページ
PHPからのSQL実行

この記事は参考になりましたか?

プログラミング未経験から始めるPHP入門連載記事一覧

もっと読む

この記事の著者

大家 正登(オオイエ マサト)

デジタルハリウッド『PHP 講座』講師。学生時代、スペイン語を専攻していたものの何故かプログラム言語に心が傾き、近所のフリープログラマーに弟子入り修行。その後中堅 SIer に 3 年間所属し、現在はフリーエンジニア。仕事の傍らジャズを演奏し、コントラバス 2 台と同居中。(ITエンジニア・大家正登のWeb...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3801 2009/04/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー