だよねがエンジニアになるんだよね

プログラミング初心者の学びブログ

メモ帳アプリ自作過程の備忘録(データベース)

しょうもないミスだし、解決できなかったものもあるが

躓いたところを書いておく。

 

一つ目、ターミナルからテーブルの作成しようとして以下を実行しようとした時
CREATE TABLE book_log.cooking
(cook VARCHAR(50),food VARCHAR(50),food2 VARCHAR(50));

 

赤くした括弧の部分をを書かずに、どこが悪いのか探し続けていた。

MySQLの公式ドキュメントを見返して間違いに気付いた。

 

 

二つ目、PHPからSQL文を実行しようとした時

 

$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: 食材150文字以内で入力してください' . PHP_EOL;

    }

    if (count($error) > 0) {

        foreach ($error as $errors) {

            echo $errors;

        }

        exit;

    }

}