【DB授業四日目】MariaDB+PHP
MariaDB+PHP
作成手順
・まずエクセルで仮の表作ってみる
・必要な情報をとりあえずピックアップしていく
●仮のテーブル
商品名 | 価格 | 在庫 | キーワード | メーカー名 | メーカー住所 | メーカー電話 |
---|---|---|---|---|---|---|
万年筆 | 19000 | 10 | 逸品 | ペン工房 | 東京都 | 03-0000-0000 |
鉛筆 | 60 | 22 | 事務 | 小鳥文具 | 栃木県 | 028-111-1111 |
クレヨン | 120 | 8 | 絵画 | 黒木屋 | 島根県 | 0853-55-5555 |
色鉛筆 | 200 | 15 | 絵画 | 黒木屋 | 島根県 | 0853-55-5555 |
・重複する値がでてきた場合は別テーブルで管理することを検討
・今回はメーカーの情報は別テーブル管理がよさそう
●文房具管理用のテーブル名:stationery
商品名 | 価格 | 在庫 | キーワード | メーカー番号 |
---|---|---|---|---|
万年筆 | 19000 | 10 | 逸品 | 1 |
鉛筆 | 60 | 22 | 事務 | 2 |
クレヨン | 120 | 8 | 絵画 | 3 |
色鉛筆 | 200 | 15 | 絵画 | 3 |
●メーカー管理用のテーブル名:trader
メーカー番号 | メーカー名 | メーカー住所 | メーカー電話 |
---|---|---|---|
1 | ペン工房 | 東京都 | 03-0000-0000 |
2 | 小鳥文具 | 栃木県 | 028-111-1111 |
3 | 黒木屋 | 島根県 | 0853-55-5555 |
・フィール名、データ型、属性を決める
※電話番号のデータ型:「-」ハイフンは文字列型なので「CHAR」を採用
●コマンドプロントにスクリプトファイル読み込ませる
※コマンドプロントの色変えるときは 「cls」記述すると開き直す
1. ユーザ名とパスワードを指定してMySQLにログイン
mysql -u root -p
2. スクリプトファイル読み込ませる
\. C:\Users\ica\Desktop\xampp\htdocs\DB講座\dbsample\practice.sql
●「root」ユーザのままだとよくないのでユーザ作成する
・ユーザ確認用
・ユーザ詳細確認用
■データベースに接続する手順(コマンドプロント)
1. ユーザ名とパスワードを指定してMySQLにログイン
mysql -u root -p
2. データベース領域の選択
USE practtice
-------ここまでが接続----------
3. テーブルの表示
SELECT * FROM stationery;
レコードを取得する
mysql → mysqli
・昔の書き方を上書きしないように苦肉の策で「i」がついた
●select_test.php
・mysqli_connect:DB接続用関数
第1引数:DBサーバの場所
第2引数:ユーザ名
第3引数:パスワード
戻り値:接続OK → 接続情報をもつオブジェクト
接続NG → false
・mysqli_select_db:DB領域選択
USE practice と同じ処理
第1引数:DB接続許可証(オブジェクト)
第2引数:選択するDB領域
・mysqli_set_charset:文字コード変換
もしPHPとDBで文字コードが違う場合にPHP側がUTF8を使っていることを知らせる
▲▲▲▲▲▲ここまでDB接続処理▲▲▲▲▲▲
・mysqli_query:SQL文をDBに渡す関数
第1引数:DB接続許可証(オブジェクト)
第2引数:SQL文(SELECT文)
戻り値:SELECT文の結果のテーブル情報
テーブル情報を変数resultSetに代入
・降順にしたいときは「ORDER BY id DESC」など使う
・mysqli_fetch_assoc:DBから取得した外部リソースを連想配列に変換する関数
第1引数:連想配列に変換する外部リソース
戻り値:ポインタ位置のレコードを連想配列にして返す
戻り値の連想配列を変数dataに代入
・item全部表示するとき
mysqli_fetch_assoc関数の結果を変数dataに代入
代入された変数dataを繰り返し条件の判定に使用
変数dataに連想配列があれば「true」
変数dataにNULLが入っていた場合は「false」
テキストの関数の説明
戻り値の型 関数名 ( 型 引数, 型 引数, ..... )
テキストの書き方でもこうなってるが
関数名 ( 型 引数, 型 引数, ..... ):戻り値の型
最近はこうなってることが多い