質問編集履歴
13
解決!!
title
CHANGED
File without changes
|
body
CHANGED
@@ -131,4 +131,15 @@
|
|
131
131
|
ついでに'encoding' => 932(SIFT_JIS)もだめでした。
|
132
132
|
※'encoding' => 65001,(UTF-8)でも同様のエラーでした。
|
133
133
|
|
134
|
-
ちなみに基幹システムのDBはutf-8にて作成されているので、特に変更の必要は無いはずですが、encodingエラーのためWindows-31Jに変更してみました
|
134
|
+
ちなみに基幹システムのDBはutf-8にて作成されているので、特に変更の必要は無いはずですが、encodingエラーのためWindows-31Jに変更してみました
|
135
|
+
|
136
|
+
追記⑤:
|
137
|
+
```php
|
138
|
+
\config\app.php
|
139
|
+
|
140
|
+
'encoding' => PDO::SQLSRV_ENCODING_UTF8,
|
141
|
+
|
142
|
+
```
|
143
|
+
こちらで無事つながることを確認しました。
|
144
|
+
|
145
|
+
参考URL:http://stackoverflow.com/questions/20042778/cakephp-sqlserver-encoding
|
12
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
###前提・実現したいこと
|
2
2
|
Microsoft SqlServer2008 をCakephp3にて使用したい。
|
3
3
|
|
4
|
-
デフォルトではPHPMyAdminにて作成したDBを使用し、
|
4
|
+
デフォルトではPHPMyAdminにて作成したDBを使用し、別のDBに登録しているSqlServer2008の情報を元に、デフォルトでつないでいるDBへデータの登録をしたいと思っています。
|
5
5
|
|
6
6
|
|
7
7
|
###発生している問題・エラーメッセージ
|
@@ -27,9 +27,6 @@
|
|
27
27
|
・
|
28
28
|
],
|
29
29
|
'****system' => [
|
30
|
-
/**
|
31
|
-
* 基幹システム
|
32
|
-
*/
|
33
30
|
'className' => 'Cake\Database\Connection',
|
34
31
|
'driver' => 'Cake\Database\Driver\Sqlserver',
|
35
32
|
'persistent' => false,
|
@@ -124,7 +121,6 @@
|
|
124
121
|
'password' => '',
|
125
122
|
'database' => 'cake',
|
126
123
|
// PDO::SQLSRV_ENCODING_UTF8
|
127
|
-
// PDO::SQLSRV_ENCODING_Windows-31J
|
128
124
|
'encoding' => 2024,
|
129
125
|
'flags' => [],
|
130
126
|
'init' => [],
|
11
S-jisの結果を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -132,6 +132,7 @@
|
|
132
132
|
];
|
133
133
|
```
|
134
134
|
'encoding' => 65001,(UTF-8)から'encoding' => 2024,(Windows-31J)に変更してみましたがエラーが発生しました。
|
135
|
+
ついでに'encoding' => 932(SIFT_JIS)もだめでした。
|
135
136
|
※'encoding' => 65001,(UTF-8)でも同様のエラーでした。
|
136
137
|
|
137
138
|
ちなみに基幹システムのDBはutf-8にて作成されているので、特に変更の必要は無いはずですが、encodingエラーのためWindows-31Jに変更してみました
|
10
備考追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -132,4 +132,6 @@
|
|
132
132
|
];
|
133
133
|
```
|
134
134
|
'encoding' => 65001,(UTF-8)から'encoding' => 2024,(Windows-31J)に変更してみましたがエラーが発生しました。
|
135
|
-
※'encoding' => 65001,(UTF-8)でも同様のエラーでした。
|
135
|
+
※'encoding' => 65001,(UTF-8)でも同様のエラーでした。
|
136
|
+
|
137
|
+
ちなみに基幹システムのDBはutf-8にて作成されているので、特に変更の必要は無いはずですが、encodingエラーのためWindows-31Jに変更してみました
|
9
追記④を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -104,4 +104,32 @@
|
|
104
104
|
```
|
105
105
|
とエラーになります。
|
106
106
|
http://book.cakephp.org/3.0/ja/orm/database-basics.html
|
107
|
-
の「Select 文の実行」を参考にソースを記載しました。
|
107
|
+
の「Select 文の実行」を参考にソースを記載しました。
|
108
|
+
→ODBCドライバをインストールしたところ、上記エラーは発生しなくなりました
|
109
|
+
|
110
|
+
追記④:
|
111
|
+
現在、****systemにつなぐためにソースを記載し実行すると以下のエラー が発生します。
|
112
|
+
```
|
113
|
+
Error: SQLSTATE[IMSSP]: An invalid encoding was specified for SQLSRV_ATTR_ENCODING.
|
114
|
+
```
|
115
|
+
とエラーになります。
|
116
|
+
http://itdoc.hitachi.co.jp/manuals/3020/30203M0360/EM030327.HTM
|
117
|
+
上記を参考に文字コードの設定を「Windows-31J」に以下のファイルを変更しています。
|
118
|
+
\vendor\cakephp\cakephp\src\Database\Driver\Sqlserver.php
|
119
|
+
```php
|
120
|
+
protected $_baseConfig = [
|
121
|
+
'persistent' => false,
|
122
|
+
'host' => 'localhost\SQLEXPRESS',
|
123
|
+
'username' => '',
|
124
|
+
'password' => '',
|
125
|
+
'database' => 'cake',
|
126
|
+
// PDO::SQLSRV_ENCODING_UTF8
|
127
|
+
// PDO::SQLSRV_ENCODING_Windows-31J
|
128
|
+
'encoding' => 2024,
|
129
|
+
'flags' => [],
|
130
|
+
'init' => [],
|
131
|
+
'settings' => [],
|
132
|
+
];
|
133
|
+
```
|
134
|
+
'encoding' => 65001,(UTF-8)から'encoding' => 2024,(Windows-31J)に変更してみましたがエラーが発生しました。
|
135
|
+
※'encoding' => 65001,(UTF-8)でも同様のエラーでした。
|
8
気になることを削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -104,8 +104,4 @@
|
|
104
104
|
```
|
105
105
|
とエラーになります。
|
106
106
|
http://book.cakephp.org/3.0/ja/orm/database-basics.html
|
107
|
-
の「Select 文の実行」を参考にソースを記載しました。
|
107
|
+
の「Select 文の実行」を参考にソースを記載しました。
|
108
|
-
|
109
|
-
気になることとしては
|
110
|
-
phpinfo();
|
111
|
-
を確認すると、pdo_sqlsrv supportのenabledがブランクであることが気になっています。
|
7
追記を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -89,6 +89,23 @@
|
|
89
89
|
|
90
90
|
C:\xampp\php\extには「php5.dll」は存在していません。
|
91
91
|
|
92
|
+
→2016/07/04:追記
|
93
|
+
使用中のPHPのバージョンを確認し、再度入れるファイルを確認したところ、「5.6.23」だったため、
|
94
|
+
php_sqlsrv_56_ts.dll
|
95
|
+
php_pdo_sqlsrv_56_ts.dll
|
96
|
+
を入れなおしました。
|
97
|
+
phpinfo();
|
98
|
+
を確認すると、PDOのenabledが「sqlsrv, mysql, sqlite 」となることを確認しました。
|
92
99
|
|
93
100
|
追記③:
|
94
|
-
現在
|
101
|
+
現在、****systemにつなぐためにソースを記載し実行すると以下のエラー が発生します。
|
102
|
+
```
|
103
|
+
Error: SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712
|
104
|
+
```
|
105
|
+
とエラーになります。
|
106
|
+
http://book.cakephp.org/3.0/ja/orm/database-basics.html
|
107
|
+
の「Select 文の実行」を参考にソースを記載しました。
|
108
|
+
|
109
|
+
気になることとしては
|
110
|
+
phpinfo();
|
111
|
+
を確認すると、pdo_sqlsrv supportのenabledがブランクであることが気になっています。
|
6
いろいろ追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
54
54
|
|
55
|
-
SqlServer2008、Cakephp3、
|
55
|
+
SqlServer2008、Cakephp3、Windows7
|
56
56
|
|
57
57
|
追記①:
|
58
58
|
phpinfo();
|
@@ -76,4 +76,19 @@
|
|
76
76
|
必要とされているファイル
|
77
77
|
php_sqlsrv_53_nts_vc6.dll
|
78
78
|
php_pdo_sqlsrv_53_nts_vc6.dll
|
79
|
-
がダウンロードできませんでした。
|
79
|
+
がダウンロードできませんでした。
|
80
|
+
|
81
|
+
→SQLSRV20.EXEを再度インストールしなおしたところ
|
82
|
+
php_sqlsrv_53_nts_vc6.dll
|
83
|
+
php_pdo_sqlsrv_53_nts_vc6.dll
|
84
|
+
がダウンロードできました。
|
85
|
+
|
86
|
+
|
87
|
+
が、、、XAMMPのAPACHEを動かすと
|
88
|
+
「コンピューターにphp5.dllがないため、プログラムを開始できません。コノ問題を解決するには、プログラムを再インストールしてみてください」とシステムエラーが発生しました。
|
89
|
+
|
90
|
+
C:\xampp\php\extには「php5.dll」は存在していません。
|
91
|
+
|
92
|
+
|
93
|
+
追記③:
|
94
|
+
現在「php5.dll」を探し中です。
|
5
追記②を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -68,4 +68,12 @@
|
|
68
68
|
extension=php_pdo.dll
|
69
69
|
extension=php_pdo_mysql.dll
|
70
70
|
extension=php_sqlsrv_53_nts_vc6.dll
|
71
|
-
extension=php_pdo_sqlsrv_53_nts_vc6.dll
|
71
|
+
extension=php_pdo_sqlsrv_53_nts_vc6.dll
|
72
|
+
|
73
|
+
→ファイルを再度確認したところ、
|
74
|
+
https://www.microsoft.com/en-us/download/details.aspx?id=20098
|
75
|
+
からexeを落としてファイルを解凍しましたが、
|
76
|
+
必要とされているファイル
|
77
|
+
php_sqlsrv_53_nts_vc6.dll
|
78
|
+
php_pdo_sqlsrv_53_nts_vc6.dll
|
79
|
+
がダウンロードできませんでした。
|
4
追記②を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,4 +56,16 @@
|
|
56
56
|
|
57
57
|
追記①:
|
58
58
|
phpinfo();
|
59
|
-
を確認すると、PDOのenabledが「mysql, sqlite」となっており、SqlServerが含まれていないのが原因かと思っています。
|
59
|
+
を確認すると、PDOのenabledが「mysql, sqlite」となっており、SqlServerが含まれていないのが原因かと思っています。
|
60
|
+
|
61
|
+
追記②:
|
62
|
+
実行したこと
|
63
|
+
https://blogs.msdn.microsoft.com/osamum/2010/09/26/php-ms-sql-server/
|
64
|
+
を参考に
|
65
|
+
SQLSRV20.EXEをダウンロードし、ファイルをC:\xampp\php\extに配置し、
|
66
|
+
php.iniに以下を記載しましたが、だめでした。
|
67
|
+
|
68
|
+
extension=php_pdo.dll
|
69
|
+
extension=php_pdo_mysql.dll
|
70
|
+
extension=php_sqlsrv_53_nts_vc6.dll
|
71
|
+
extension=php_pdo_sqlsrv_53_nts_vc6.dll
|
3
誤字修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,4 +56,4 @@
|
|
56
56
|
|
57
57
|
追記①:
|
58
58
|
phpinfo();
|
59
|
-
を確認すると、PDOのenabledが「mysql, sqlite」となっており、
|
59
|
+
を確認すると、PDOのenabledが「mysql, sqlite」となっており、SqlServerが含まれていないのが原因かと思っています。
|
2
補足情報を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
54
54
|
|
55
|
-
SqlServer2008、Cakephp3
|
55
|
+
SqlServer2008、Cakephp3、Windows
|
56
56
|
|
57
57
|
追記①:
|
58
58
|
phpinfo();
|
1
phpinfo\(\);の内容を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,4 +52,8 @@
|
|
52
52
|
|
53
53
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
54
54
|
|
55
|
-
SqlServer2008、Cakephp3
|
55
|
+
SqlServer2008、Cakephp3
|
56
|
+
|
57
|
+
追記①:
|
58
|
+
phpinfo();
|
59
|
+
を確認すると、PDOのenabledが「mysql, sqlite」となっており、SqlServweが含まれていないのが原因かと思っています。
|