回答編集履歴

2

修正

2019/02/21 00:57

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -13,3 +13,49 @@
13
13
  この手のエラーは**エラーメッセージにある行数ズバリよりもその直前の処理や処理結果**が原因で起きていることがよくあります。
14
14
 
15
15
  var_dump()などを効果的に利用し、デバッグする癖をつけると解決が早まります。
16
+
17
+
18
+
19
+ ----
20
+
21
+
22
+
23
+ 補足資料:
24
+
25
+ [MySQLの予約語とキーワード](https://qiita.com/hmatsu47/items/a1da0e06f0597acd6502)
26
+
27
+
28
+
29
+ 予約語にあがっているものはそもそもカラムには使えないと思って良いです。
30
+
31
+ [予約語っぽいけど例外的に認められているものもあります。](https://dev.mysql.com/doc/refman/5.6/ja/reserved-words.html)
32
+
33
+ > MySQL では、以前に多くの人々が使用していたので、一部のキーワードを引用符で囲まない識別子として使用することを許可しています。次の一覧に例を示します。
34
+
35
+ ACTION
36
+
37
+ BIT
38
+
39
+ DATE
40
+
41
+ ENUM
42
+
43
+ NO
44
+
45
+ TEXT
46
+
47
+ TIME
48
+
49
+ TIMESTAMP
50
+
51
+
52
+
53
+ ただ、「その名称だけで何のことかわかるか?」ということもありますし、
54
+
55
+ 紛らわしいので``をつけるだけではなく、きちんと用途や意味が伝わる名前(m6uさんが挙げてくれてますね)にすることを強くすすめます。
56
+
57
+
58
+
59
+ もし、その名称によって壁にあたってしまっているのなら、非常に勿体無いです。
60
+
61
+ idとかもあるかもしれませんが、単に`id`ではなくそれは「何のidか」が分かるようにするのが良いです。

1

追記

2019/02/21 00:57

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -5,3 +5,11 @@
5
5
  その場合はPDO::prepareにセットしているSQLを見直す必要があります。
6
6
 
7
7
  文法が合っているかとか存在しないカラム指定してないかとか。
8
+
9
+
10
+
11
+ ちなみに。
12
+
13
+ この手のエラーは**エラーメッセージにある行数ズバリよりもその直前の処理や処理結果**が原因で起きていることがよくあります。
14
+
15
+ var_dump()などを効果的に利用し、デバッグする癖をつけると解決が早まります。