回答編集履歴

3

加筆修正

2021/01/15 09:26

投稿

退会済みユーザー
test CHANGED
@@ -70,4 +70,6 @@
70
70
 
71
71
 
72
72
 
73
- みたいな構造。
73
+ みたいな構造。このへんの流れは、ベテランでも何度も読み返すこちらの記事を参照あれ。
74
+
75
+ [PHPでデータベースに接続するときのまとめ - Qiita](https://qiita.com/mpyw/items/b00b72c5c95aac573b71)

2

加筆修正

2021/01/15 09:25

投稿

退会済みユーザー
test CHANGED
@@ -19,3 +19,55 @@
19
19
  php.iniファイル上の該当箇所をデバッグ用に修正してください。
20
20
 
21
21
  php.iniファイル上での記述の仕方は、こちらを参照:[PHPのエラー表示設定について - Qiita](https://qiita.com/shotets/items/3c95aef631b2c5eadae5)
22
+
23
+
24
+
25
+ 細かいことを言うと、
26
+
27
+ `new PDO()`する下りだけtry~catchしているんだが、
28
+
29
+ データベースにアクセスしている最中は例外は発生しやすいので、
30
+
31
+ 全体的にtryブロック内に入れるべし。
32
+
33
+
34
+
35
+ さらには、複数のINSERT INTO文を実行しているけど、
36
+
37
+ 片方だけ成功して片方が失敗したりするとデータの不整合を起こしちゃう危険性があるんじゃないかい?
38
+
39
+ 失敗したときにINSERT INTO文をなかったコトにするためには、
40
+
41
+ [PHP: PDO::beginTransaction - Manual](https://www.php.net/manual/ja/pdo.begintransaction.php)
42
+
43
+ [PHP: PDO::commit - Manual](https://www.php.net/manual/ja/pdo.commit.php)
44
+
45
+ [PHP: PDO::rollBack - Manual](https://www.php.net/manual/ja/pdo.rollback.php)
46
+
47
+ を駆使します。
48
+
49
+
50
+
51
+ try
52
+
53
+ _new PDO()
54
+
55
+ _try
56
+
57
+ __beginTransaction()
58
+
59
+ __INSERT INTO文実行1
60
+
61
+ __INSERT INTO文実行2
62
+
63
+ __commit()
64
+
65
+ _catch
66
+
67
+ __rollback()
68
+
69
+ catch
70
+
71
+
72
+
73
+ みたいな構造。

1

加筆修正

2021/01/15 09:24

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,21 @@
1
1
  さすがに`$db = new PDO('*******);`の閉じ引用符忘れはギャグだと思うのだけど、
2
2
 
3
3
  `if ($a > 0) {`に対する`} else {`の閉じる方がないのは文法エラーになっちゃうんじゃないかい?
4
+
5
+
6
+
7
+ つまらない文法エラーが有ると、冒頭の
8
+
9
+ ```
10
+
11
+ ini_set("display_errors", 1);
12
+
13
+ error_reporting(E_ALL);
14
+
15
+ ```
16
+
17
+ も無視されてしまうので、デバッグをちゃんとやるなら、
18
+
19
+ php.iniファイル上の該当箇所をデバッグ用に修正してください。
20
+
21
+ php.iniファイル上での記述の仕方は、こちらを参照:[PHPのエラー表示設定について - Qiita](https://qiita.com/shotets/items/3c95aef631b2c5eadae5)