35
Agenda 1.PHP入門 PHP の概要と PHP プログラムを作成するための基本事項 2.PHP言語入門 PHP 言語の基本的な文法 3.データベースとPHPの連携 PHP でデータベースに接続し、データベースの操作を行う 4.Class入門 PHP のクラスと、クラスから生成されるオブジェクトについて 5.PEAR PEARの役割について

1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

Agenda

1.PHP入門PHP の概要と PHP プログラムを作成するための基本事項

2.PHP言語入門PHP 言語の基本的な文法

3.データベースとPHPの連携PHP でデータベースに接続し、データベースの操作を行う

4.Class入門PHP のクラスと、クラスから生成されるオブジェクトについて

5.PEARPEARの役割について

Page 2: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

1.PHP入門

PHP の概要と PHP プログラムを作成するための

基本事項を説明します。

□ PHP とは

□ PHP プログラムの構成

□ プログラムの実行

Page 3: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

PHPとは

• PHP言語の特徴PHPとは「PHP Hypertext Preprocessor」の略

C言語やJAVA、Perlなどと同じプログラミング言語

※ファイルの拡張子が「 .php 」

□ インタープリタ型スクリプト言語

□ 文法が比較的容易 (厳密な型チェックなし)

□ CGIと比較すると、実行速度が早い

□ どのような種類のデータベースとも接続可能

□ Webアプリケーション開発に特化した言語

Page 4: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

1: プログラムでHTMLを作成するタイプ

Program

<HTML><BODY>200X年 X月 X日

・・・

</BODY></HTML>

200X年X<BODY> <HTML>

<HTML><BODY>

200X年 X月 X日

</BODY></HTML>

<HTML><BODY>200X年 X月 X日

・・・

</BODY></HTML>

<HTML><BODY>

・・・

</BODY></HTML>

<?php ?>

2: HTMLの中にプログラムを埋め込むタイプ

• HTMLを動的に生成する技術

Page 5: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

1: サーバー上のプログラムを利用するタイプ

– CGI(Common Gateway Interface):• 多種言語(C, VB, Perl)が利用できる

• カウンター 、掲示板 、アンケートフォームなどの

ページを作成することができる。

– Javaサーブレット:Java• 処理効率が良い(サーバーのメモリ上に常駐)

• セッション管理、DBアクセス、メール送受信機能を有する。

• HTMLを動的に生成する技術

Page 6: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

2: HTMLの中にスクリプトを埋め込むタイプ– ASP (Active Server Pages)

• 米マイクロソフトが開発した、Webサーバー用のサーバー・サイド・スクリプト処理機構。97年4月にリリースしたInternet Information Server3.0に初めて搭載した。

– PHP (Hypertext Preprocessor)• 無料で利用可能。プラットホームが幅広い、DBアクセスやメール関連

のライブラリが提供されている

• HTMLファイル内に直接記述するタイプのスクリプト言語。PHP/FI(Personal Homepage/Form Interpreter)の後継。

– JSP (Java Server Pages)• 初回参照時にコンパイルされ、サーブレットとして動作。EJB等が利用

可能。

• 米サン・マイクロシステムズが1999年6月、JSPの最初の仕様「JavaSever Pages 1.0」を策定した。

• HTMLを動的に生成する技術

Page 7: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

PHP プログラムの構成

<html><head>

<title>PHP World</title></head><body>

</body></html>

<?php

?>

PHPの開始

PHPの終了

PHPはHTMLの中に埋め込むように記述します。※拡張子は、『.php』

Page 8: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

プログラムの実行手順

PHP プログラムのソースプログラムの作成から、

実行手順は以下のようになります。

実行

エディタを用いてソースファイルを作成

※ファイル名には、拡張子 .php を付ける。

ブラウザからアクセス

※ Apacheが起動されていることが前提

ソースプログラムの作成

ファイルの保存

Page 9: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

はじめてのPHPプログラム

文字を表示するプログラムです。(ファイル名:hello.php)

『実行方法』

ブラウザから、http://127.0.0.1/prog/hello.php

にアクセスします。

※Apacheが起動されていることが前提

<html><body><?php

print("Hello World!");

?></body></html>

メモ帳に入力し、

Apacheをインストールした

ディレクトリ 配下に

progというフォルダを作成し

その中にhello.phpという

名前で保存します。

Page 10: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

2.PHP 言語入門

PHP 言語の基本的な文法を紹介します。

□ コメント

□ 変数

□ 型

□ 配列

□ 定数

□ 関数と引数

□ 演算子と演算子の優先順位

□ 分技文

□ ループ文

□ ファイル操作

□ HTTP関数

Page 11: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

PHP 言語におけるコメントの指定は、以下のとおりです。

// この行の最後までをコメントとして扱う。

# この行の最後までをコメントとして扱う。

/* 複数行に渡ってコメント指定ができる。 */

コメント

例2<html><head>

<title>はじめてのPHP</title></head><body><?php

/*複数行コメントが記述できます。

*/print(”Hello World!”);

?></body></html>

例1<html><head>

<title>はじめてのPHP</title></head><body><?php

//この行のみコメントが記述できます。print(”Hello World!”);

?></body></html>

Page 12: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

変数

『変数』とは、一時的にデータの『値』を格納し、計算結果などによって

その値の内容が変化する性質を持ちます。

数文字列 配列

変数

$変数名 = 変数に代入する値

変数は、『代入演算子』によって値を変数に格納する。PHPでは、変数の行頭に『$』をつける。

・変数は『$』ではじめること

・変数に使える文字は英字、数字、アンダースコア

・変数名の始まりに数字は使えない

・変数名の大文字と小文字は区別される

※ApacheやPHPですでに定義されている変数もいくつかある

(例、$_POST:HTMLから送られてくるデータを受け取る時に使用)

Page 13: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

実習 : 変数に名前をつけて、値を代入してみよう!

<html><head>

<title>はじめてのPHP</title></head><body>

<?php//文字列を変数に代入し出力する$str = ” Hello World!”;print ($str );

?>

</body></html>

Page 14: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

変数は型を持ち、型はその変数が整数であるのか、

文字列であるのか表します。

例<?php

//変数の自動生成$abcd= ” Hello World!”;print ($abcd );

?>

・文字列変数ダブルコーテーション、シングルコーテーションで囲まれた変数

・数値変数何も囲まれずに値を格納(文字列を何も囲まなければエラーとな

る)

※PHPではこの『型』の判断をほぼ自動で行ってしまうので

この『型』を意識しなくて良い。

※変数が自動生成されるのでタイプミスに注意!

Page 15: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

【論理型】 boolean型とも言い、「true」か 「false」の2種類

例 $var = true;

【整 数】 integer型とも言い、浮動小数点以下の値を持たないあるいは切り捨てられる値を持つ。一般的な整数の範囲は、-2,147,483,645~2,147,483,645

例 $var = 1500;

【浮動小数点数】 float型、double型、real型ともよばれ、小数点以下の数値を持つ。

例 $var = 3.14159265;

【文字列】 string型とも言い、文字列を値とした変数。英字や漢字、かななどを扱うことができる。文字列を代入する場合には、「’」 (シングルコーテーション)「’’」(ダブルコーテーション)で囲みます。

例 $var = ’こんにちは!’;$var 2= ” こんにちは $var さん”;

Page 16: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

《 型キャストの書式 》(bool),(boolean)

(int),(integer)

(float),(double),(real)

(string)

(array)

(object)

→論理型へのキャスト(型変換)

→整数型へのキャスト

→浮動小数点へのキャスト

→文字列へのキャスト

→配列へのキャスト

→オブジェクトへのキャスト

例<html><head><title>cast.php</title></head><body><?php$kaimono = 1234;$kaimono = $kaimono * 1.05;$seikyugaku = (int)$kaimono;print (“請求額は”.$seikyugaku.“円です”);?></body></html>

実行結果------------------------------請求額は1295円です

Page 17: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

配列

配列とは1つの変数名で複数の値を格納できる。

color

color

color

color

color

color

変数

配列

例<html><body>

<?php$color[0]="red";$color[1]="green";$color[2]="blue";$color[3]="yellow";$color[4]="gold";print_r($color);?>

</body></html>

変数名[添え字]※添え字(インデックス)は0(ゼロ)から始まる

Page 18: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

《連想配列》

インデックスが文字列の配列のもの

例<html><head><title>association_array</title></head><body><?php$like1['color']= "blue";$like1['food']= "curry";$like1['sports']="baseball";print_r($like1);

?></body></html>

Page 19: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

定数

変数と同じように値を格納するものですが、変数と違って

一度値を設定すると値が変更できません。

※スクリプト内で何度も同じ値が出てくるような場合に使用

定数を定義するために、define()関数を使い、

定数名とその値を引数とする。

【定義済みの定数】

__FILE__ → 実行しているスクリプトファイル名

__LINE__ → 実行中の行数

FALSE → 偽の値

NULL → 値を持たないという意味の値

TRUE → 真の値

define( ”定数名” , ”値” )

Page 20: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

関数とは、『あるまとまった処理や命令を1つの表現に置き換えて

簡単に使えるようにしたもの』

引数の役割は、『関数に値を渡すこと』

《ユーザ定義関数》あらかじめ動作や機能が決められている関数ではなく

ユーザが独自にその動作を決めることができる仕組み

「function」 という命令を使って定義し、「処理」の部分に

自分でまとめておきたい処理や機能を記述しておく。

必要時、この関数を呼び出せば、まとまった処理が簡単に実現でき

何度も再利用して使用することができる。

関数と引数

function 関数名 ( 引数 ) {

処理

Page 21: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

例、合計金額から消費税を抜いた税抜き価格を計算する関数

<?phpfunction calc($zeikomi) {

$zeinuki = $zeikomi / 1.05;return $zeinuki;

}?><html><body><?phpprint ( calc(105) );?></body></html> 作成した関数を呼び出す場合

作成した関数名( 引数 )

実行結果---------------100

Page 22: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

変数の有効範囲(ローカル変数とグローバル変数)変数には有効範囲(スコープ)があり、関数内にあるものをローカル変数、それ以外にあるものをグローバル変数と呼びます。

<html><head><title>no_global.php</title></head><body><?php$a = 1;function test(){

print ($a+1);}test();?></body></html>

<html><head><title>global.php</title></head><body><?php$a = 1;function test(){

global $a;print ($a+1);

}test();?></body></html>

実行結果---------------1

実行結果---------------2

Page 23: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

【算術演算子】

演算子 意味 例 結果

+ 加算 $a + $b $aに$bを足す

- 減算 $a - $b $aから$bを引く

* 乗算 $a * $b $aに$bをかける

/ 除算 $a / $b $aを$bで割る

% 剰余 $a % $b $aを$bで割った余り

演算子

加算子と減算子

++ 前置加算子 ++$a $aの値に1足した後、 $aを返す後置加算子 $a++ $aを返した後、 $aの値に1足す

-- 前置減算子 --$a $aの値から1引いた後、 $aを返す後置減算子 $a-- $aを返した後、 $aの値から1引く

Page 24: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

【比較演算子】

演算子 意味 例 結果

== 等しい $a == $b $aが$bと等しい場合にTRUE

=== 型が同じで $a === $b $aが$bに等しく型が同じである

等しい 場合にTRUE

!= 等しくない $a != $b $aが$bに等しくない場合にTRUE

<> 等しくない $a <> $b $aが$bに等しくない場合にTRUE

!== 等しくないか $a !== $b $aが$bに等しくないか、同じ型で

型が異なる ない場合にTRUE

< より小さい $a < $b $aが$bより小さい場合にTRUE

> より大きい $a > $b $aが$bより大きい場合にTRUE

<= より小さいか $a <= $b $aが$bより小さいか等しい場合に

等しい TRUE

>= より大きいか $a >= $b $aが$bより大きいか等しい場合に

等しい TRUE

Page 25: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

【論理演算子】

[演算子] [意味]

and , && 論理積

or , || 論理和

xor 排他的論理和

! 否定

【ビット演算子】

[演算子] [意味]

& 論理積

| 論理和

^ 排他的論理和

~ 否定

<< 左シフト

>> 右シフト

【代入演算子】

[演算子] [意味]

= 代入

【文字列演算子】

[演算子] [意味]

. 結合

Page 26: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

【複合演算子】

[演算子] [例] [結果]

+= a += b a + bの演算結果をaに代入

-= a -= b a - bの演算結果をaに代入

*= a *= b a * bの演算結果をaに代入

/= a /= b a / bの演算結果をaに代入

.= a .= b a . bの演算結果をaに代入

Page 27: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

演算子の優先順位優先順位

高い

低い

演算子new[! ~ ++ -- (int) (double) (string) (array) (object) @* / %+ - .<< >>< <= > =>== != === !==&^|&&||? := += -= *= /= .= %= &= |= ^= ~= <<= >>=printandxoror,

Page 28: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

分岐文

if.else 文:if ( boolean 式) {

処理;} else if ( boolean 式) {

処理;} else {

処理;}

Switch 文:switch ( 式 ) {

case 定数式1:処理;

case 定数式2:処理;

‥‥default:

処理;}

$point = 80;

if ($point >= 70) {print (“合格です!”);

} else {print (“残念!”);

}

$hyouka = "B";switch ($hyouka){

case "A":print (“パーフェクト!”); break;

case "B":print (“素晴らしい!”); break;

case "C":print (“合格!”);break;

default:print (“がんばりましょう!”);

}

サンプル

Page 29: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

繰り返し制御(ループ)

for ループfor (式1 ; boolean 式 ; 式2 ) {

処理;

while ループwhile ( boolean 式 ) {

処理;

}

do-while ループdo {

処理;

} while ( boolean 式 ) ;

ループ文を制御するために提供されている制御文

break [ ラベル ]; continue [ ラベル ]; ラベル: 処理;

return [ 式 ];

for ($a=0; $a<=5; $a++){print ($a."<br />");

}

サンプル

$a=0;while ($a <= 5) {

print ($a."<br />");$a++;

}

$a=0;do {

print ($a."<br />");$a++;

} while ($a <= 5);

Page 30: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

foreach ループforeach ( 配列 as $value ) {

処理;

foreach ( 配列 as $key => $value ) {

処理;

サンプル

$color3=array(0=>'red', 1=>'green', 2=>'blue');foreach ($color3 as $value) {

print ($value."<br />");}

実行結果---------------redgreenblue

Page 31: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

分岐と繰り返しのサンプルプログラム(break.php)

<html><head><title>break.php</title></head><body><?php

// break文$arr_name = array (‘tanaka', 'sato', ‘suzuki', 'yamada', ‘kato');foreach ($arr_name as $value) {

// 配列の要素を順に$valueに代入するif ( $value == 'yamada' ) {

print $value . "さんです<br>";break; // 'yamada'まできたらforeachを抜け出す

}print "$value<br>";

}?></body></html>

Page 32: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

3.データベースとPHPの連携

□ データベースに接続する

□ データベースを操作する

Page 33: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

データベースに接続する

mysql_connect( [ホスト名], [ユーザ名], [パスワード] )

→指定したホスト名で稼動するMySQLに、指定したユーザ名、パスワードで

接続します。接続に成功するとMySQLとの接続IDを、失敗するとFALSEが返ります。

mysql_select_db( データベース名, [接続ID] )

→指定したデータベースを利用できる状態にします。

成功するとTRUEを、失敗するとFALSEを返します。

mysql_query( クエリ, [接続ID] )

→クエリの実行を行います。

クエリがSELECT文の場合は、成功時にクエリの結果IDを返します。

DELETE、INSERT,UPDATE文については成功時にはTRUEを返します。

クエリ失敗時には、FALSEを返します。

mysql_free_result( 結果ID )

→結果を保持しているメモリを開放します。

Page 34: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

サンプルプログラム(sample_connect.php)

<html>

<head><title>簡易接続</title></head>

<body>

<?php

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

mysql_select_db(“sampledb", $conn);

$res = mysql_query("SHOW TABLES",$conn);

if($res){

print (“データ獲得に成功しました。”);}

mysql_free_result($res);

?>

</body>

</html>

Page 35: 1.PHP入門 · 1.php入門 php の概要とphp プログラムを作成するための基本事項 2.php言語入門 php 言語の基本的な文法 3.データベースとphpの連携

サンプルプログラム(sample_array_data.php)<html><head><title>配列データの取得</title></head><body><table border="1"><tr><td>題名</td><td>著者</td><td>出版社</td></tr><?php$host = "localhost";if (!$conn = mysql_connect($host, "usr", "passwd")){

die("MySQL接続エラー.<br />");}mysql_select_db(“sampledb", $conn);$sql = "SELECT * FROM book_table";$res = mysql_query($sql,$conn);while($row = mysql_fetch_array($res)) {

print("<tr>");print("<td>".$row["btitle"]."</td>");print("<td>".$row["bauth"]."</td>");print("<td>".$row["bpub"]."</td>");print("</tr>¥n");

}mysql_free_result($res);?></table></body></html>

CREATE TABLE book (

bid int(10) unsigned NOT NULL auto_increment,

btitle varchar(20) NOT NULL default '',

bauth varchar(20) NOT NULL default '',

bpub varchar(20) NOT NULL default '',

PRIMARY KEY (bid)

) TYPE=MyISAM;