db コンテナにログイン → データベースの設定
MySQL にログイン
mysql -u myappuser -p myapp
SQLの記法
CREATE TABLES テーブル名(
カラム名 データ型,
カラム名 データ型,
);
クエリメモ
- レコードの挿入(レコードはidで区切られる横の行のこと)
- INSERT INTO テーブル名 (カラム名) VALUES (データ);
SELECT(抽出して、ターミナルに表示できる)
SELECT * FROM テーブル名; (全てのレコードを抽出)(レコード,,,idで区切られる横の行)
SELECT カラム名1,カラム名2 FROM テーブル名;
SELECT * FROM テーブル名 WHERE 条件;(条件を満たすレコード(id区切り行)を抽出)
SQLのデータ型の指定
- 整数 INT
- 実数 DECIMAL(固定小数点)、FLOAT(浮動小数点)
- 文字列 CHAR(固定長のデータ) 、VARCHAR(文字数がバラバラ) 、TEXT(文字数がバラバラ)
真偽値 BOOL(TRUEかFALSE)
PRIMARY KEY という指定をすると、レコードを一意に特定するためのカラムに設定できる
主キーにしておくと、 id の値をうっかり入れ忘れたり、値が重複していたときにエラーにしてくれる
id INT NOT NULL AUTO_INCREMENT,(主キーの連番を自動で振る)
PDOを使ってPHPからSQLにアクセス
- PDO (PHP Database Objects)
- PHPでデータベースを扱うオブジェクト
- DSNとuser名とpasswordを設定する
- オブジェクト,,,クラスのインスタンス、値に名前を付けたデータ
クラス,,,テンプレート
インスタンス,,,テンプレートからできたオブジェクト
new クラス名、でクラスから値(インスタンス)を作る。
PDOはすでにクラスが定義されている。
new PDO(←クラス名)(
\DSN(data source name)
データベースの種類(mysql):host=セットアップされたマシン名(ホストを指定);マシン名name=扱っていくデータベース名;文字コードの設定(charset=utf8mb4),
user名,
password,
);
PHP
定数 define('定数名', 値);
変数 $変数名(クラスの中で定義すると、プロパティという)
PHP用語
メソッド クラスの中で定義した関数
アロー演算子,,,その左辺にクラスのインスタンス、右辺には左辺のクラスが持つプロパティやメソッドを指定。
$instance -> プロパティ(値)
インスタンス(左)からプロパティ、メソッド(右)を取り出す
プロパティを取り出すときには、format()などのメソッド(関数)を使える。
-private,,,アクセス修飾子。メソッド(関数)に付け、あるクラスの中でしか使えないようにできる
- try catch,,,例外的な処理は別のところでまとめて書くというテクニックで使う。
- 例外的なケースが発生→throw new Exception();
- ↑Exceptionクラス(あらかじめPHPに組み込まれているクラス)のインスタンスに投げる。
- 例外が発生しそうな箇所をtry{例外出そう}で囲う↓
- 引数名をExceptionにしたcatch{Exception}でExceptionクラスのインスタンスを受け取る。
- どのように対処したいかを catch() のほうに分けて書く。
ビルトイン関数
- あらかじめ PHP に組み込まれている関数
- strlen(),,,文字列の文字数を抽出