ご覧いただきありがとうございます。
現在、エンジニアとして就職するべくWebサービスを作成しています。
作成するWebサービスの実施したいことは
- ユーザーの現在地を取得
- 現在地によって画面を切り替え
- その際、APIを使って画面切り替え
- 2・3で表示する際に登録したデータをもとにさらにカスタム(出来たらいいな)
- AWSでサーバーアップ
と要件定義をしたうえで9月から勉強しています!
現在10月6日時点で4まで完了。
技術を学び、さらにWebサービスの具体的な実装イメージが固まってきた段階です。
1〜3と4をうまく繋げられるかが自信ないけど・・・一回やってみるか!というような感じです。
そして、技術を勉強していくなかでたくさんのエラーに出会いました。
さらに、そのエラー内容が見事にMySQLばっかりだったので紹介させていただきます。
お読みいただく対象者
- プログラミングを勉強始めたばかりの方
- 初学者に対して教育を行っている方
起こったエラー一覧
長々と書いても読みづらいので、早速エラーの一覧を下記に👇
tadsan様に3と4をコメントでご教示いただき内容を追記しました(2022.10.7 7時am)
本当にありがとうございます
追記したところを赤くします
項目 | エラー言語 | エラー原因 |
---|---|---|
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に慣れていないから起きているかもしれません。
今後はエラーメッセージ表示もきちんと記録しようと思います。