回答編集履歴

1

補足を追加

2018/10/22 08:23

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -3,3 +3,27 @@
3
3
 
4
4
 
5
5
  [こちら](http://php.net/manual/ja/ref.pdo-sqlsrv.php)を読んだ上で確認してください。
6
+
7
+
8
+
9
+ 補足:
10
+
11
+ 実際には ODBC Driver を経由して処理されるのですが、その弊害なのか、SQL を直接記述して、かつプレースホルダを使う場合に、「ある名前のプレースホルダは、SQL 文中で一度しか使用できない」という制限があります。
12
+
13
+ 例えば
14
+
15
+ ```SQL
16
+
17
+ SELECT * FROM start_time >= :nowtime AND end_time <= :nowtime
18
+
19
+ ```
20
+
21
+ が、うまく通らないのです(しかもエラーメッセージが一見するとわかりにくい)。この場合は(nowtime1 と nowtime2 に同じデータを設定する前提で)
22
+
23
+ ```SQL
24
+
25
+ SELECT * FROM start_time >= :nowtime1 AND end_time <= :nowtime2
26
+
27
+ ```
28
+
29
+ のように記述しなくては通ってくれないことがあります。