名前が被らないようなJsonもききたい
ハイウェイバスの予約システム
ログインとかは今回なし
db: highwaybus
table: seats column 3
一日一本しかないバスを予約するイメージ
バスを特定するには日付だけあればいい
日付と座席番号があれば特定できるイメージで
column:
ymd /date /primary
seat_id /primary
reserved / boolean(設定しても中身はint)
>カラムにプライマリーキー制約を設定すると、カラムには他のデータの値を重複することのない値しか格納することができなくなります。また NULL も格納することができません。その結果、プライマリーキー制約が設定されたカラムの値を検索することで、テーブルの中でただ一つのデータを特定することができます。
予約をするには予約済みとかがあってほしいのでデータを作っておく
一気にデータをつくりだす作業をする
バッチをとるとかいうらしい
highwaybusフォルダにフォルダをきる
api
css
js
tool
今回は手続き型で書く。クラスのやり方は再来週予定。
直下にconfig.phpを制作
プログラムはおおむね暗記は必要なく理解がひつようだが
PDOの流れやループの書き方はある程度出力を何回かやって書き方を覚える必要がある
らしい
$dsn = "mysql:host={$host};dbname={$dbname};charset=utf8";
ここは区切り文字はセミコロン。前のテストで間違えたやつだ。
カンマは配列であるとか関数のパラメータの区切り文字で使う。
ところで変数というのは場合によって変数おせんを受けるかもしれない
$dsn = "mysql:host={$host};dbname={$dbname};charset=utf8";
ここをよりセキュアにしたいと思ったら定数を使う
文字列連結をしないといけなくなるのでむつかしい
商用なら定数をつかうとセキュア
↓
defineというキーワードがある
オリジナルの定数を作ることが出来る
パラメータは2つ
定義をするときには丸括弧とダブルクォートを使う
書いたときにすぐ「定数だ」とわかるように全部大文字で書くのがふつう
define("HOST_NAME","localhost");
こんな風に記述する
既にある定数とかぶらなければなんでも名前は自由
define("DB_PASS","");
これはできない
空文字はいれられない
本番で運用するときパスワードがないということはありえないのでなにかしら値が入る
逆にパスワードってどこで設定するの??
→プロバイダがくれるらしい
echo HOST_NAME;
とか書ける。
丸括弧も""もいらない。
これだけでエコーされる
--->ここまで
config.php
<?php
//setting
//環境によって変える
$host = "localhost";
$dbname = "highwaybus";
$dbuser = "root";
$dbpass = "";
//
$dsn = "mysql:host={$host};dbname={$dbname};charset=utf8";
$pdo = new PDO($dsn,$dbuser,$dbpass);
/*
//定数を使うやり方
define("HOST_NAME","localhost");
define("DB_NAME","highwaybus");
define("DB_USER","root");
define("DB_PASS","");
echo HOST_NAME;
*/
?>