質問編集履歴
2
やったこと、解決方法追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -120,9 +120,9 @@
|
|
120
120
|
|
121
121
|
###試したこと
|
122
122
|
|
123
|
-
上記のHogeShellが呼べていることと、
|
123
|
+
上記のHogeShellが呼べていることと、ターミナルからではなくControllerからDBアクセスしデータの取得は出来ていることは確認済みです。
|
124
124
|
|
125
|
-
app.phpの設定もしており、
|
125
|
+
app.phpの設定もしており、ターミナルから起動した場合のみエラーが発生します。
|
126
126
|
|
127
127
|
|
128
128
|
|
@@ -143,3 +143,43 @@
|
|
143
143
|
cakephp3.x
|
144
144
|
|
145
145
|
mac osx
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
###※9月11日追記 解決?
|
150
|
+
|
151
|
+
controllerから実行した場合とターミナルから実行した場合で読み込んでいるphp.iniのディレクトリを調べた結果
|
152
|
+
|
153
|
+
・controller:/Applications/XAMPP/xamppfiles/etc
|
154
|
+
|
155
|
+
・ターミナル:/usr/local/etc/php/5.6
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
controllerはxamppの配下、ターミナルからはhomebrewでPHPをインストールしたディレクトリとなっていました。
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
それぞれが読んでいるpdo_mysql.default_socketの場所を調べた結果
|
164
|
+
|
165
|
+
・controller:/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
|
166
|
+
|
167
|
+
・ターミナル:/tmp/mysql.sock
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
ここで/tmp配下を覗いてみるとmysql.sockなんてファイルはない!つまりxamppの方のパスを指定してあげれば良いのでは?
|
172
|
+
|
173
|
+
と考え/Applications/XAMPP/xamppfiles/var/mysqlを見に行ったがそこにもmysql.sockなんてファイルはありませんでした。
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
ものは試しと思い、/usr/local/etc/php/5.6/php.iniのpdo_mysql.default_socketのパスをxamppのものにしてみたところDB接続が成功しレコード取得出来ました。。。
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
ファイル自体はターミナルから検索してもfinderで見ても存在していないのに読み込めているのは理由を理解しないと気持ち悪いですが、とりあえずはターミナルからcakeコマンドで実行した場合は使うphpや読み込むphp.iniが違うよというのが原因でした。(環境依存かもしれませんが...)
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
unauさん、icchiiさんありがとうございました!
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
ターミナルからcakeのShellを起動し、中でDBアクセスし処理を行いたい。
|
4
4
|
|
5
|
-
|
5
|
+
↓ここでやっていることがエラーとなる
|
6
|
+
|
7
|
+
[シェルの中でのモデルの使用](https://book.cakephp.org/3.0/ja/console-and-shells.html#id4)
|
6
8
|
|
7
9
|
|
8
10
|
|