PHP8模試 間違えたとこまとめ その3

まだ続く
データベース制御4大命令
- データ登録(Create):データベースのデータ挿入。テーブルにデータを登録する構文。
INSERT INTO テーブル名(列名1, 列名2, ...) VALUES(値1, 値2, ...); - データ取得(Read):データベースのデータ取得。
SELECT 列名 FROM テーブル名; - データ更新(Update):データベースのデータ更新。
UPDATE テーブル名 SET 列名 = 値; - データ削除(Delete):データベースのデータ削除。テーブル内全ての行(全データ)を削除する。WHEREを使うと、条件を指定し特定の行を消すことができる。
DELETE FROM テーブル名;
SQLの並び替え(ORDER BY句)
カンマ区切りで複数条件がある場合の優先ルール。
ORDER BY 第1条件, 第2条件;
- 第1条件で並び替え、同じ値があれば第2条件で並び替える。
- DESC:降順(大きい順/金額の高い順/新しい日時順など)
- 指定なしまたはASC:昇順(小さい順/アルファベット順 A~Z/古い日時順など)
fopen("ファイル名", "ファイルモード")
指定したファイルを開いて、読み書きの準備をする関数。
ファイルモード:用途に合わせてモードを指定する。
- r:読み込み専用。ファイルがないとエラー(false)を吐く。
- w:書き込み専用。中身を空にして上書きする。ファイルがないと新規作成。
- a:追記用。末尾に追加していく。w同様、ファイルがないと新規作成。
- r+:読み書き専用。ファイルがないと(false)を吐く。
ファイル末尾判定:feof
End of Fileの略。ファイルの最後まで読み切ればtrueになる。ループ処理の終了条件でよく使われる。
クッキー(cookie)
クッキーの値には配列を使うことはできない。
→ブラウザに保存できるデータは文字列のみ。setcookie()に配列を入れてしまうとWarningになる。

配列をクッキーに保存したい場合は?
serialize()やjson_encode()を使い、ただの文字列に変換してからsetcookieに入れる。
setcookie(クッキー名, クッキーの値, 有効期限)
- クッキー名:文字列
- クッキーの値:文字列のみ
- 有効期限:省略するとブラウザ終了時に消える(セッションクッキーという)
セッションの仕組み
デフォルトではPHPSESSIDという名前のクッキーを使って、サーバとブラウザ間で「セッションID」をやり取りし管理する。
- session_start():PHPでセッションを開始(または再開)する関数。
ブラウザからのリクエストにセッションID(クッキー)が含まれているか調べ、なければ新しく発行する。 - セッションID:ユーザ(ブラウザ)を識別するための固有の鍵。デフォルト:PHPSESSID
- session.gc_maxlifetime:php.iniで使用する項目。
セッションデータが「ゴミ(不要なもの)」とみなし消去されるまでの有効期限を設定する。単位は《秒》。
デフォルト:1440秒(24分)
cURL関数
PHPで外部のウェブサイトにアクセスし、情報を取得・送信する際に使われる仕組み。
cURL処理のステップ
- curl_init():準備(初期化)
cURLのセッションを開始し、リクエストを送るための窓口(リソース/$ch)を作り、引数に取得したいURLを指定する。 - curl_setopt():設定変更
窓口($ch)に対して、どんな風にデータを取ってくるか(タイムアウト時間やヘッダー情報など)を細かく設定する。 - curl_exec():実行
execute = 実行する。実際に相手のサーバにアクセスしてデータを取得。 - curl_close():終了
使い終わったcURLセッションを閉じ、メモリを開放する。
JSON処理関数
- json_encode():PHPの配列やオブジェクトをJSON形式の文字列に変換する。PHP→JSON(文字列化・データ化)
- json_decode():JSON形式の文字列をPHPの配列やオブジェクトに変換する。JSON→PHP(解読)
file_get_contents()
指定したファイルの中身をすべて文字z列として組み込む関数。ローカルファイルだけでなく、URLを指定して外部サイトのデータ(HTMLやJSONなど)を取得もできる。
error_reporting()
php.ini等のファイルで、どのレベルのエラーを出力するか指定する。
エラーでプログラムが止まるもの
Parse Error(構文エラー)Fatal Error(致命的エラー)は停止する。Warning(警告)とNotice(注意)は実行する。
