【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
今から始める MySQL入門

今から始める MySQL入門(2)

PHPプログラミングの基礎を学ぼう



鶴長 鎮一(book@tsurunaga.jp)
2007/2/23

 連載第1回目では、MySQL+PHP+Apacheのインストールと動作確認までを解説しました。今回は、PHPによるWebプログラミングの基本と次回以降で作成する「簡易オンラインストア」の概要について説明します。

関連リンク:
連載 快速MySQLでデータベースアプリ!
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.html
連載 今から始める MySQL入門
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysql5index.html

今から始める MySQL入門 PHP Webプログラミングの基本


PHPコードの埋め込み


 PHPは、Webアプリケーション構築を前提に開発された言語です。そのため、Webアプリケーション開発で頻繁に使用される処理などを簡単に利用できます。また、HTMLとの相性が良いことでも知られています。

 HTMLテキストの中にPHPコードを埋め込むには、<?php 〜 ?>を用います(図1)

図1 HTMLテキストに埋め込まれたPHPコードの例

 PHPは、HTMLテキストのデザインを崩すことなくコード埋め込むことができるため、プログラマーだけでなく本格的なプログラミング経験がないWebデザイナーなどからも支持されています。

 ちなみに、1行スクリプトを用いると、HTMLタグの中に処理を埋め込むことができます。

<font color="red" size=+2><?php print "こんにちは" ?></font>
1行スクリプトの例

フォーム処理


 Webアプリケーションで頻繁に使用される処理に「フォーム処理」があります。通常、<form>タグのaction属性で指定されたWebアプリケーションは送信されたデータの解析、各フォームデータの抽出、格納などの複雑な手順を踏む必要があります。

 しかし、PHPではそのような複雑な手順を省略して「$_POST["name属性"]」で値を取り出せます。

 下記リスト1、2は入力&送信されたフォームデータを「$_POST["input1"]」「$_POST["input2"]」を利用して、画面に表示させる例です。

<form action="sample.php" method="POST">
<input type="text" name="input1">
<input type="text" name="input2">
<input type="submit" value="送信">
</form>
リスト1 sample.html

<?php
print $_POST["input1"];
print $_POST["input2"];
?>
リスト2 sample.php

 ちなみに、<form>タグのmethod属性を「POST」から「GET」に変更する場合は、「$_GET["name属性"]」を使用します。しかし、GETメソッドでは送信できるデータの大きさに限界があります。また、データ内容を簡単に盗み見ることができるため、通常はPOSTメソッドの使用をお勧めします。

 $_POSTや$_GETはスーパーグローバル変数と呼ばれ、PHPであらかじめ用意された連想配列(注)です。ほかにもPOSTとGETどちらにも対応する「$_REQUEST["name属性"]」があります。

注:通常の配列では、インデックス番号で各値にアクセスします。しかし、連想配列の場合はキーを用いて各値にアクセスします。ハッシュテーブルとも呼ばれます。

エラー処理


 本連載では、エラー処理に「die("メッセージ")」を使用します。die()は引数に指定されたメッセージを表示して、それ以降の処理を中断します。ちなみに、exit()を使用すれば、メッセージを表示せずに処理を終了できます。

<?php
print "begin<br>";
die("これ以降の処理は続行されません");
print "end";
?>
die()の使用例

 また、下記のように「TRUE/FALSEを返す処理」と「or」を組み合わせれば、エラーが発生した場合だけメッセージを表示して、以降の処理を中断できます(注)

注:第1回 MySQL+Apache+PHPをインストールしようのサンプル2を参照。

TRUE/FALSEを返す処理 or die("メッセージ");

エラーの確認方法


 PHPはコンパイルを必要としないため、実行するまで間違いに気が付かない場合があります。実行時のエラーは、Apacheのログ「/var/log/http/error_log(ソースからインストールした場合は/usr/local/apache2/logs/error_log)」に出力されます。

[日付] [error] [クライアントのアドレス] PHP Parse error: syntax error, unexpected '>' in /var/www/html/sample.php on line 2
PHPのエラーログの例

 また、下記のようにPHPをコマンドモードで実行(「-l」オプションを指定)すれば、ブラウザでアクセスする前に構文のチェックを行うことができます。

$ /usr/bin/php -l sample.php ←(注)
PHP Parse error:  syntax error, unexpected '>' in sample.php on
 line 2
Errors parsing sample.php

注:ソースからインストールした場合 は、/usr/local/bin/php -l sample.php

 ちなみに、「-f」オプションを指定すればPHPスクリプトをコマンドラインから実行できます。しかし、「-f」オプションだけではブラウザからのアクセスを完全に再現できません(単純なスクリプト判定の確認程度なら可能)。詳しくは「-h」オプション、または「$ man php」で確認してください。

$ /usr/bin/php -f sample.php

関連リンク:
PHP4で作るWeb-DBシステム
http://www.atmarkit.co.jp/flinux/php4/php4_1/php1.html
オブジェクト指向言語に生まれ変わるPHP5[前編]
http://www.atmarkit.co.jp/flinux/special/php5/php5a.html
オブジェクト指向言語に生まれ変わるPHP5[後編]
http://www.atmarkit.co.jp/flinux/special/php5/php5c.html

第1回へ
1/2

Index
今から始める MySQL入門(2)
 PHPプログラミングの基礎を学ぼう
Page 1
 PHP Webプログラミングの基本
   PHPコードの埋め込み
   フォーム処理
   エラー処理
   エラーの確認方法
  Page 2
 簡易オンラインストアの概要
   画面イメージと機能
   共通処理

連載 今から始める MySQL入門


 Linux Squareフォーラム データベース関連記事
連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説
連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する
連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座
連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説
特集:エンタープライズ市場に向かうMySQL 5.0[前編]
MySQL 5.0の新機能をアルファ版でチェック
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

ホワイトペーパーTechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)



- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?