LoginSignup
0
0

More than 1 year has passed since last update.

#6 未経験エンジニア〜勉強中に起こったエラーはMySQL関連ばっかりでした〜

Last updated at Posted at 2022-10-06

ご覧いただきありがとうございます。

現在、エンジニアとして就職するべくWebサービスを作成しています。

作成するWebサービスの実施したいことは

  1. ユーザーの現在地を取得
  2. 現在地によって画面を切り替え
  3. その際、APIを使って画面切り替え
  4. 2・3で表示する際に登録したデータをもとにさらにカスタム(出来たらいいな)
  5. AWSでサーバーアップ

と要件定義をしたうえで9月から勉強しています!

現在10月6日時点で4まで完了。

技術を学び、さらにWebサービスの具体的な実装イメージが固まってきた段階です。

1〜3と4をうまく繋げられるかが自信ないけど・・・一回やってみるか!というような感じです。

そして、技術を勉強していくなかでたくさんのエラーに出会いました。

さらに、そのエラー内容が見事にMySQLばっかりだったので紹介させていただきます。

お読みいただく対象者

  • プログラミングを勉強始めたばかりの方
  • 初学者に対して教育を行っている方

起こったエラー一覧

長々と書いても読みづらいので、早速エラーの一覧を下記に👇

tadsan様に3と4をコメントでご教示いただき内容を追記しました(2022.10.7 7時am)
本当にありがとうございます:relaxed:
追記したところを赤くします

項目      エラー言語      エラー原因
1 MySQL 空白が入っていた
2 カンマがなかった
3 PHP syntax error(字下げしていなかった)
4 MySQL カンマがなかった
5 PHP 演算子 ===
6 Github emailが間違っていた

ではさらに内容を記載していきます。

MySQL①:空白が入っていた

事象:Undefined indexエラーメッセージ表示
原因:文字列の中の空白があった
詳細:'product'が ' product'だった

MySQL②:カンマがなかった

事象:エラーメッセージ1064が表示
原因:カンマが入っていた
詳細:【正】 employees 【誤】employees,

PHP:syntax error(字下げしていなかった)

事象:エラー(番号などを控えてなかった)
原因:syntax error(字下げしていなかった)
詳細:

【正】

<?php

function query($sql): void
{
    var_dump($sql);
}

query(<<<'EOT'
  SELECT id, name
  FROM users
  WHERE id IN (1, 2, 3)
  EOT);

【誤】

<?php

function query($sql): void
{
    var_dump($sql);
}

query(<<<'EOT'
  SELECT id, name
  FROM users
  WHERE id IN (1, 2, 3)EOT); ←で字下げしていなくsyntax error

動作確認: https://3v4l.org/dGtiD#v8.1.11

MySQL④:カンマがなかった

事象:エラーメッセージ「Column count doesn't match value count at row 1」
原因:カンマがない為、項目が繋がってしまった
詳細:
【正】

... (
)VALUES(
"{...}",
"{...}", ←の","がなかった

【誤】

... (
)VALUES(
"{...}",
"{...}"

MySQLのテーブルをみて
1つのセルに2つの値が入っていて気づけた〜

PHP:演算子

事象:エラー(番号などを控えてなかった)
原因: submitで送信した先のPHPで演算子で大文字小文字区別
詳細:

  • php→ <form ... method="post">
  • create.php→ if ($_SERVER['REQUEST_METHOD'] === 'POST') {}

追記👇

<?php

$input = 'POST';

var_dump(
  $input == 'post', // false
    $input == 'POST', // true
    $input === 'post', // false
    $input === 'POST', // true
);

動作確認: https://3v4l.org/MbDi4#v8.1.11

またコメントによりPHPで-----はどちらも小文字大文字を区別することが認識できました!

Github:メールアドレス

事象:エラー(というかpushしているのに反映されない)
原因:emailが違った
詳細:登録時のアドレスが違った←自分のミス

【確認方法】
・github: settings > emails
・githubコマンド:
git config --global -l
git config --local -l

振り返り:エラーをメモっていて良かった

  • 自分のミスを振り返れる
  • 傾向がわかり、対策ができる

現在、毎日Twitterで学んだことをアウトプットしています。

あわせてエラーが発生した際も事象と原因や対策などをアウトプットしています。

現在1ヶ月振り返ってみると、圧倒的にMySQL関連のエラーで立ち止まっていました。

そして、カンマや字下げ、空白など初期的なミスが圧倒的に多いことがわかりました。

もしかしたら初学者は同様のエラーが起こりやすいのかもしれません。

もしくはMySQLに慣れていないから起きているかもしれません。

今後はエラーメッセージ表示もきちんと記録しようと思います。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0