メモ帳アプリ自作過程の備忘録(データベース)
しょうもないミスだし、解決できなかったものもあるが
躓いたところを書いておく。
一つ目、ターミナルからテーブルの作成しようとして以下を実行しようとした時
CREATE TABLE book_log.cooking
(cook VARCHAR(50),food VARCHAR(50),food2 VARCHAR(50));
赤くした括弧の部分をを書かずに、どこが悪いのか探し続けていた。
MySQLの公式ドキュメントを見返して間違いに気付いた。
$sql = <<<EOT
INSERT INTO cooking (
cook,
food,
food2
)VALUES(
"{$cooking['cook']}",
"{$cooking['food']}",
"{$cooking['food2']}"
)
EOT;
赤くした部分を "" と {} で囲っていなかった。
完成品である読書ログサービスと比較して、なぜ必要かを後付けて調べた。
"" はVALUESに対して文字列だと指定しなければいけないから。
{} は変数の範囲をはっきりさせるため。
これについてはちゃんと理解できていないし、間違っているかもしれない。。。
三つ目、配列を追加する時
単純に文法ミス
$a = [追加する文]
としてしまっていた所を
$a = 追加する文
と、直した。
四つ目、バリデーション処理を行っている時
function validate($cooking)
{
$error = ;
if (!strlen($cooking['cook'])) {
$error = 'Error: 料理名を入力してください' . PHP_EOL;
} elseif (strlen($cooking['cook']) > 50) {
$error = 'Error: 料理名は50文字以内で入力してください' . PHP_EOL;
}
if (!strlen($cooking['food'])) {
$error = 'Error: 食材1を入力してください' . PHP_EOL;
} elseif (strlen($cooking['food']) > 50) {
$error = 'Error: 食材1は50文字以内で入力してください' . PHP_EOL;
}
if (count($error) > 0) {
foreach ($error as $errors) {
echo $errors;
}
exit;
}
}