【DB授業十日目】MariaDB+PHP(続き6)
作業手順おさらい
1.DB構築
・DB構築は必ずスクリプトファイルを作成・実行
2.システム専用ユーザの作成
・スクリプトファイルを作成・実行を推奨
・ユーザの作成はシステムユーザでは行われない
※システムユーザはユーザ作成権限なしの場合が多いので
3.システムユーザでテーブルの確認
---------------------------------上記までDB作業--------------------------------------
4.functions.phpを作成
・よく使う自作関数を定義
・h関数:XSS対策「echo時に呼び出す」
・v関数(関数名なんでもOK):デバック用関数
・DB接続用関数:
5.各ページの作成
・DBを操作する場合はSQL文
※まずはシェルでSQL文を実行して望んだ結果が得られることを確認してPHPに持っていく
・ユーザ入力値を使ってSQL文を作成する場合
1.値をとりあえず入れてシェルでSQL文実行確認
・sprintf関数:データ型の確認
・mysqli_real_escape_string:クォートのエスケープ
3.SQL文を確認するため出力して確認
※シェルで作成したSQL文「1」と「3」で出力してSQL文を比較して問題ないことを確認(DBのミスなのか?PHPのミスなのか?判断するため)
4.DBにSQL文を渡して処理を記述
mysqli_query関数:SQL文を実行
※もしSELECT文だったら情報を変数に代入
1.戻り値のテーブル情報を変数に代入
2.テーブル情報を連想配列に変換(mysql_fetch_assoc関数)
3.必要な個所で値を出力(h関数をかけて出力)
◆値の受け渡し
「入力画面」>「確認画面」>「実行画面」
◇ユーザ入力値の受け渡し
フォームを使ってPOSTでの受け渡し(たまにGET)
送信側:HTMLフォーム
受信側:PHPの$_POST($_GET)を使用
◇DBで対象レコードを絞り込むid番号などの識別値
クエリ文字列でのGETでの受け渡し
送信側:リンクに「?値の名前=値&値の名前一覧」
受信側:$_GETを使用
◇確認画面からの実行画面に値を受け渡し
セッションを使って受け渡し
送信側:$_SESSION['部屋の名前'] = 渡したい値
受信側:$変数 = $_SESSION[' 部屋の名前 ']