3.PHP_MySQL
■データベースのCRUD
DBMSがレコードに対して行う4つの操作。
Create 生成
Read 読み取り
Update 更新
Delete 削除
SQLのコマンドでは、
insert
select
update
delete
が対応する。
今回は、MySQLにテーブルを作成し、 PHPで生成したWebから、C R D が可能なページを作製する。 U については、応用問題とし各自で挑戦、
または、次回講義で解説。
■演習内容:
新規にデータベース mypra をMySQLで作成し、フィールド数5のテーブル mytest を作成する。
mytest のデータを、表示・追加・削除する PHPファイル mypra.php を mycds.php を参考にして作成する。
データベースとテーブルの作成後、
mycds.php を mypra.php としてコピーし、テキストエディタで編集する。
XAMPPを起動。WebサービスとMySQLを開始する。
MySQLの管理画面、 PHPAdmin から MySQLに接続
データベースの新規作成
データベース名 mypra
照合順序 UTF8-general-ci
テーブルを1つ作成
テーブル名 mytest
フィールド数 5
フィールドの設定
フィールド名 種別 インデックス A_I(オートインクリメンタル) デフォルト値
id INT primary ○
date TIMESTAMP current_timestamp
field1
field2
field3
field1~3 のフィールド名、種別は各自で適当に指定( name , age , comment など)
例)
フィールド名 種別 長さ
name VARCHAR 11
age INT
comment TEXT
フィールドのデータに文字列を記録する場合、日本語の記録には、
照合順序 で utf8_unicode_ci の指定が必要。
(文字コードの指定がない場合は、文字化けが発生)
動作確認:
テーブルにデータを2,3件、挿入する。(挿入タブから)
作成した練習用データベース mypra のテーブルについてアクセス用のPHPファイルを
mycds.php を元にして、作成。
phpファイル名 mypra.php
設置場所: c:\xampp\htdocs\xampp\
要件:
・データベースのデータ表示
・データベースへのデータ書き込み & 書き込みデータの表示
・データベースのデータ削除
以上の3つが動作する。
・テーブルの表示で、フィールドの見出しを適切に設定する
・テーブルのデータの表示順を適切に設定する
以上の2つにも対応する。
MySQLとPHPの接続で文字化けの対処について
以下の2つの設定が必要:
1.データベースの接続で、SQLコマンドで文字コード utf8 を指定する。
mycds.phpに記載されている、
mysql_select_db("mypra");
の次の行に、
mysql_query("SET NAMES utf8");
を追記。
2.PHPのファイルを文字コードUTF8を指定して保存:
テキストエディタ terapadでは文字コードを指定して保存が可能です。以下のファイルをUTF8で保存しなおしてください。
mypra.php
上記の設定を行う以前にデータベースに記録されたレコードは、文字化けが治らないことがある。
文字化けしたレコードを削除して対応する。
テーブル mytest を参照して表示するWeb上のテーブルの文字化けは上記の設定で解消する。
しかし、逆にWeb上のテーブル以外の部分で文字化けが発生する場合がある。
これは、元の mycds.php では、
$TEXY[''keyword']
の変数に、各言語設定に応じたメッセージを設定しているためで、
上記変数内のメッセージの文字コードが他の文字コードと不一致となるためである。
修正するには、
<h2><?php echo $TEXY[''keyword']; ?></h2>
の様な箇所を
<h2>見出し1</h2>
の様に直接メッセージを表示するように変更する。