回答編集履歴
1
コメントを受け追記
test
CHANGED
@@ -15,3 +15,41 @@
|
|
15
15
|
|
16
16
|
|
17
17
|
意味をきちんと理解すれば、このような質問は出てこないと思いますが。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
######以下、コメントを受け追記
|
22
|
+
|
23
|
+
PHPマニュアル
|
24
|
+
|
25
|
+
https://www.php.net/manual/ja/pdo.error-handling.php
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
公式に「エラーモードの記述は省略可能」とは謳われてないですよね?
|
30
|
+
|
31
|
+
省略したことないんで断言はしませんが、デフォルトのモードがPDO::ERRMODE_SILENTとなっているので、まぁ省略してもERRMODE_SILENTになるのでしょう。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
その上で、
|
36
|
+
|
37
|
+
> 注意:PDO::__construct() は、接続に失敗した場合は常に PDOException をスローします。 これは、現在設定されている PDO::ATTR_ERRMODE が何であっても同じです。例外を処理しないと、fatal エラーとなります。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
とあるので、「接続に失敗した場合」については敢えてエラーモードを指定していなくても(SILENTであっても)catch (PDOException $e)が生きてきますが、逆に言うと接続失敗以外のエラーの場合にはPDOExceptionがスローされていないのでエラーをcatchした処理はできませんよね?
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
お使いの書籍がなんなのかわかりませんが、接続する「だけ」の場合は、エラーモードの指定は省略しても問題ないでしょう。接続失敗以外のエラーは出ないでしょうから。
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
質問のようにクエリをなんらか投げるのなら、接続失敗以外のエラーをちゃんと捕まえられるようにエラーモードの設定は必須になります。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
PHPマニュアルが読めれば出てこない質問です。
|
54
|
+
|
55
|
+
(意味をきちんと理解する=PHPマニュアルちゃんと読もう ということです)
|