バージョン選択

フォーラム

メニュー

オンライン状況

64 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 64
もっと...

サイト内検索

質問 > フロント機能 > SQL文の生成箇所

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
acehikaru
投稿日時: 2008/7/4 13:49
対応状況: −−−
半人前
登録日: 2008/6/25
居住地:
投稿: 18
SQL文の生成箇所
すみません、質問です。

EC-CUBEの内部CLASSでSQLのクエリを実行しているのかと思うのですが、この際に実行しているSQL文をエラーログかどこかにだしたいと思ってます。

そこでsqlを生成してる箇所に「error_log()」をかけようと思ったのですが、SQLの生成箇所をみつけることができませんでした…

どなたかご存知の方いればお教えください;
zon
投稿日時: 2008/7/5 10:10
対応状況: −−−
半人前
登録日: 2008/5/27
居住地:
投稿: 27
Re: SQL文の生成箇所
/data/logs/site.log

にSQLのエラーログがあります。

運用していないのなら、

「基本情報管理」→「パラメータ設定」の
DEBUG_MODE を true にすれば、
HTMLの下の方に吐かれるようになるので
テストするときは便利ですよ。
acehikaru
投稿日時: 2008/7/8 11:18
対応状況: −−−
半人前
登録日: 2008/6/25
居住地:
投稿: 18
Re: SQL文の生成箇所
zonさん
回答ありがとうございます。
返信おくれてすいません。

>/data/logs/site.log
これは確認したんですが、どうもSQLらしきものが見つからなくて…
SQLはエラーしかログに出さないんでしょうか?もしくは設定の問題か…

>DEBUG_MODE を true
cakePHPみたいですね。
初歩的なところを見逃していたみたいで、すみません。
この方法で試したいと思います。
zon
投稿日時: 2008/7/10 1:08
対応状況: −−−
半人前
登録日: 2008/5/27
居住地:
投稿: 27
Re: SQL文の生成箇所
質問の意図を読み間違ってました。すみません。

SQL文を生成している場所は、Pear の DB だと思います。
EC-CUBE だと、/date/module/ 配下にあります。

ただ、module 配下は手を入れるべきではないと思うので、
/data/class/配下の SC_DbConn か、SC_Query が持っている
DBのオブジェクトのSQL文を取得すれば出来ると思います。

ざっと目を通しただけなので、実際にあっているかわかりませんが、
DB_result の query ってメンバがSQL文をもっているのでは
ないかと予想。
acehikaru
投稿日時: 2008/7/10 14:21
対応状況: −−−
半人前
登録日: 2008/6/25
居住地:
投稿: 18
Re: SQL文の生成箇所
>zonさん
毎度返信ありがとうございます。
DEBUG_MODEのtrueでもエラーのみ出力みたいですね

引用:
SQL文を生成している場所は、Pear の DB だと思います。
EC-CUBE だと、/date/module/ 配下にあります。

上記了解です。
DB_resultの値も除いてみますね。
seasoft
投稿日時: 2008/7/10 15:48
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: SQL文の生成箇所
下記で、いかがでしょうか?

実行しているSQLを取得する
http://seasoft.jp1.cx/ec/tips/getsql


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

acehikaru
投稿日時: 2008/7/10 19:06
対応状況: −−−
半人前
登録日: 2008/6/25
居住地:
投稿: 18
Re: SQL文の生成箇所
>seasoftさん
まとめていただきましてありがとうございます。
いたるところでSQLが出るようになりましたw

printじゃなくてlog書き込みの処理にかえましたが、
lastqueryだとスマートにまとまっていいですね。

zon
投稿日時: 2008/7/10 19:34
対応状況: −−−
半人前
登録日: 2008/5/27
居住地:
投稿: 27
Re: SQL文の生成箇所
SC_Query が SQL を取得するメソッドを持ってたんですね。

select()内 だけだと、select() を使わない場合は、SQL文が表示されなくなりそうですね。

SC_Query で SQL文を実行している後の全てに入れないといけないかも?

あと、せっかくだから DEBUG_MODE をうまく使って

$this->getLastQuery(DEBUG_MODE);

とかして、デバッグモードじゃないときは Log に残すとかに改造すれば、使い勝手がよさそうですがどうですか?
acehikaru
投稿日時: 2008/7/14 21:26
対応状況: −−−
半人前
登録日: 2008/6/25
居住地:
投稿: 18
Re: SQL文の生成箇所
>zonさん

返信遅れてすいません。

とりあえずSELECT文だけで僕は間に合ったんですが、UPDATEとかも見れるとべんりですね。
クエリ実行した直後に必ず通るロジックがあれば一箇所でいいんですけど…;

あと、せっかくだから DEBUG_MODE をうまく使って
$this->getLastQuery(DEBUG_MODE);
これはナイス有効活用ですね。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,852名です
総投稿数は109,989件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.