回答編集履歴

2

加筆修正

2019/05/20 13:21

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,7 @@
1
+ ボリューミーですみません。
2
+
3
+
4
+
1
5
  ```
2
6
 
3
7
  catch(Exception$e)
@@ -12,23 +16,61 @@
12
16
 
13
17
  ```
14
18
 
15
- を一旦
19
+ の箇所を一旦
16
20
 
17
21
  ```
18
22
 
19
- catch(Exception$e)
23
+ catch(Exception $e)
20
24
 
21
25
  {
22
26
 
23
- echo $e->getMessage();
27
+ echo $e->getMessage();
24
28
 
25
- exit();
29
+ exit();
26
30
 
27
31
  }
28
32
 
29
33
  ```
30
34
 
31
35
  などとすれば、例外で捕まえた状況をhtml出力に込められるはず。
36
+
37
+
38
+
39
+ それと、パソコンの中で動作確認をしていて、
40
+
41
+ webサーバーがXAMPPのApacheであれば
42
+
43
+ C:\xampp\apache\logs
44
+
45
+ にあるであろう、error_logに手がかりがありそう。
46
+
47
+
48
+
49
+ それと、本に書いてないかもしれないけど、
50
+
51
+ webサーバーがXAMPPのApacheであれば
52
+
53
+ C:\xampp\php
54
+
55
+ にあるphp.iniにて、
56
+
57
+
58
+
59
+ > display_errors = On
60
+
61
+ error_reporting = E_ALL
62
+
63
+
64
+
65
+ を書き加えるとエラー発生時にwebブラウザ上にエラーメッセージが表示されるようになるので
66
+
67
+ おすすめ。
68
+
69
+ [PHPのエラー表示設定について - Qiita](https://qiita.com/shotets/items/3c95aef631b2c5eadae5#%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E5%AE%9A%E6%95%B0)
70
+
71
+ にはphpコード内でini_set()にて指定する方法も紹介されているけど、
72
+
73
+ phpコードの文法エラーがあるとき困るので、なるべくphp.iniや.htaccessに記述する方法をお試しください。
32
74
 
33
75
 
34
76
 

1

見直し

2019/05/20 13:21

投稿

退会済みユーザー
test CHANGED
@@ -36,6 +36,42 @@
36
36
 
37
37
  カラム名name,priceは存在するか、
38
38
 
39
+ カラム名nameは文字列型だと察すると格納可能なサイズを超えていないか、
40
+
41
+ カラム名priceは数値型だと察するに数値として扱えない記号を含んでいないか、
42
+
39
43
  省略しているカラム名があるならそれらにはautoincrement指定やdefault指定があるか、
40
44
 
41
45
  などの確認もどうぞ。
46
+
47
+
48
+
49
+ で、老婆心ながら。
50
+
51
+ 写経したコードがベストプラクティスだとは言い切れない。
52
+
53
+ ```
54
+
55
+ $pro_name=htmlspecialchars($pro_name);
56
+
57
+ $pro_price=htmlspecialchars($pro_price);
58
+
59
+ ```
60
+
61
+ [htmlspecialchars](https://www.php.net/manual/ja/function.htmlspecialchars.php)って、
62
+
63
+ html出力用に加工するものであって、
64
+
65
+ データベースに格納するデータに使うべきではないのです。
66
+
67
+ 例えば&→&とか”→"とか(正確にはすべて半角記号です)に置き換えてしまうので、
68
+
69
+ データベースでSELECT文を実行するときに「&」を含むつもりで検索すると「"」も引っかかってきます。
70
+
71
+ [「何故htmlspecialcharsを通すのか?」を一言でどうぞ - Qiita](https://qiita.com/mpyw/items/19e6fed835ccdbcb0d6d)
72
+
73
+ を読んで理解していただけたなら、
74
+
75
+ [PHP で h() を書くなら一緒に echo しよう。 - こせきの技術日記](http://koseki.hatenablog.com/entry/20120216/htmlspecialhonyarara)
76
+
77
+ を読んでこちらのやり方で使ったほうが良いかと提案します。