teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

実行結果の追記

2017/05/25 06:26

投稿

M-Kajiwara
M-Kajiwara

スコア24

title CHANGED
File without changes
body CHANGED
@@ -78,7 +78,8 @@
78
78
  ```
79
79
 
80
80
  ---
81
- 2017/05/24 14:30 追記
81
+ **2017/05/24 14:30 追記**
82
+
82
83
  PHPを実行しているサーバで、tsqlコマンドを実行し、
83
84
  SQLを発行した場合、正しく結果が取得できることを確認
84
85
 
@@ -101,6 +102,33 @@
101
102
  2 ddd
102
103
  (2 rows affected)
103
104
 
105
+ ---
106
+ **2017/05/25 15:00 追記**
107
+
108
+ 問題を切り分ける為以下を実施
109
+ - リンクサーバを新規追加
110
+ リンクサーバ名:LOCALSRV
111
+ リンクサーバDB:SQLSrver2014
112
+
113
+ - 実行PHP(SQLを追記)
114
+ $sql3 = "SELECT * FROM OPENQUERY(LOCALSRV, 'SELECT * FROM SqlserverTB')";
115
+
116
+ ```
117
+ $sql3実行結果
118
+ <<<開始>>>
119
+ <<<成功>>>
120
+ <<<終了>>>
121
+ ```
122
+
123
+ 実行結果から、
124
+ - Informixへの接続が問題ではなさそう。
125
+ - OPENQUERYが利用できない、または、使い方が悪いと考えられる。
126
+
127
+ これから検証する予定の内容
128
+ - ビューやストアドを経由し実行結果が取得できないか確認
129
+ - PDO以外の接続方法を調査
130
+
131
+
104
132
  ###補足
105
133
  前回の質問からの続きです。
106
134
  [PHPからInformixにODBC接続で、表示結果が途中で文字化けする](https://teratail.com/questions/74106)

2

作業内容追記

2017/05/25 06:26

投稿

M-Kajiwara
M-Kajiwara

スコア24

title CHANGED
File without changes
body CHANGED
@@ -77,6 +77,30 @@
77
77
  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
78
78
  ```
79
79
 
80
+ ---
81
+ 2017/05/24 14:30 追記
82
+ PHPを実行しているサーバで、tsqlコマンドを実行し、
83
+ SQLを発行した場合、正しく結果が取得できることを確認
84
+
85
+ 追記したコンフィグ
86
+ [root@localhost ~]# vim /etc/freetds.conf
87
+ [MSSQL]
88
+ host = 192.168.1.10
89
+ port = 50000
90
+ instance = SQLSERVER2014
91
+ charset = UTF8
92
+ client charset = UTF8
93
+
94
+ 実行したコマンド
95
+ [root@localhost ~]# tsql -S MSSQL -U user -P password
96
+ 1> SELECT * FROM OPENQUERY(LINQSRV, 'SELECT * FROM InformixTB')
97
+ 2> go
98
+
99
+ id val
100
+ 1 ccc
101
+ 2 ddd
102
+ (2 rows affected)
103
+
80
104
  ###補足
81
105
  前回の質問からの続きです。
82
106
  [PHPからInformixにODBC接続で、表示結果が途中で文字化けする](https://teratail.com/questions/74106)

1

実行結果の追加

2017/05/24 05:34

投稿

M-Kajiwara
M-Kajiwara

スコア24

title CHANGED
File without changes
body CHANGED
@@ -24,6 +24,9 @@
24
24
  |2|ddd|
25
25
 
26
26
  ```php
27
+
28
+ print("<<<開始>>>");
29
+
27
30
  try {
28
31
  $dsn = "dblib:host=192.168.1.10:50000\SQLSERVER2014;dbname=SqlserverTB;charset=UTF-8;";
29
32
  $db = new PDO($dsn, "user", "password");
@@ -36,14 +39,35 @@
36
39
  while ($row = $stmt->fetch()) {
37
40
  print("結果:" . $row[1]);
38
41
  }
42
+
43
+ print("<<<成功>>>");
44
+
39
45
  } catch (PDOException $e) {
40
46
  print("PDOException:" . $e->getMessage());
41
47
  }
48
+
49
+ print("<<<終了>>>");
50
+
42
51
  ```
43
52
  ---
44
53
  PHPソースの実行結果
54
+ ```
55
+ $sql1実行結果
56
+ <<<開始>>>
57
+ 結果:aaa
58
+ 結果:bbb
59
+ <<<成功>>>
60
+ <<<終了>>>
61
+ ```
62
+ ```
63
+ $sql2実行結果
64
+ <<<開始>>>
65
+ <<<成功>>>
66
+ <<<終了>>>
67
+ ```
68
+
45
69
  - $sql1:実行でき結果を取得できた。
46
- - $sql2:実行したが結果を取得できない。エラーは発生せず。
70
+ - $sql2:実行したが結果を取得できない。Exception等エラーは発生せず。
47
71
  - $sql2については、SQLServerManegmentStadioで正常に実行できることを確認済み。
48
72
  - $sql2の実行後、SQLServerManegmentStadioで以下のSQLを実行し、
49
73
  発行されたSQLを確認したが、結果に対象のSQLが存在しなかった。