バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

先着1,000社 プラグインダウンロード&お申込で1,000円分Amazonギフト券プレゼント amazon pay
広告掲載について

サイト内検索

質問 > フロント機能 > 「この商品をみた人はこんな商品もみています」プラグインでサーバーダウン

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2018/6/6 17:38
対応状況: 解決済
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 519
「この商品をみた人はこんな商品もみています」プラグインでサーバーダウン
EC-CUBE3.0.15
MySQL 5.1.40-log

「この商品をみた人はこんな商品もみています」プラグインによりDBサーバーに次のログが出力され続けており、MySQLのプロセスがダウンしました。

■SQLログ
[Warning] Statement may not be safe to log in statement format.
Statement: delete from plg_hsd_related_product order by updated_at asc limit 1

次のソースが原因と思われますが、Warningログが出力されないようにするにはどのようにSQL文を変更すればよいでしょうか?

app/Plugin/HSDRelatedProduct/Controller/Block/HSDRelatedProductController.php
            // データ保持数に達していたら削除
            $query = $app['orm.em']
                ->createQuery(
                    'SELECT count(rp.id) cn FROM Plugin\HSDRelatedProduct\Entity\HSDRelatedProduct rp'
                );
            $rs = $query->getResult();
            if($rs[0]['cn'] > $max_row){
                // 古いrowを削除
                if($rs[0]['cn'] > $max_row){
                    $del_rows = $rs[0]['cn'] - $max_row;
                }
                $stmt = $app['orm.em']->getConnection()->prepare('delete from plg_hsd_related_product order by updated_at asc limit ' . $del_rows);
                $stmt->execute();
            }


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

468
投稿日時: 2018/6/7 11:06
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1144
Re: 「この商品をみた人はこんな商品もみています」プラグインでサーバーダウン
warningが出力されるのは、MySQLの仕様ではないかと思われます。
(このSQLを実行した場合、対象となるレコードが毎回変わる為)
このwarningを出力せずに処理するには、WHERE句の指定が必要かと思います。
delete文を実行する前に、
'select * from plg_hsd_related_product order by updated_at asc limit' . $del_rows
のSELECT文を実行し、抽出結果のレコードをループしながら、キーを指定して削除を実行すれば、warningは出なくなるのではないかと思います。
(in句を使って、1回のSQL発行でも問題無いかと思います)


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

h_tanaka
投稿日時: 2018/6/7 12:14
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 519
Re: 「この商品をみた人はこんな商品もみています」プラグインでサーバーダウン
468様

ご助言ありがとうございます。
次の対応でうまくいきました。

app/Plugin/HSDRelatedProduct/Controller/Block/HSDRelatedProductController.php(99行目)

【変更前】
                $stmt = $app['orm.em']->getConnection()->prepare('delete from plg_hsd_related_product order by updated_at asc limit ' . $del_rows);
                $stmt->execute();


【変更後】
                $stmt = $app['orm.em']->getConnection()->prepare("
                        SELECT rp.id as id FROM plg_hsd_related_product rp order by updated_at asc limit
                    " . $del_rows);
                $stmt->execute();
                $rs = $stmt->fetchAll();
                foreach($rs as $item){
                    $stmt = $app['orm.em']->getConnection()->prepare('delete from plg_hsd_related_product where id = "' . $item['id'] . '"');
                    $stmt->execute();
                }


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は29,951名です
総投稿数は87,064件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1754
4
yuh
1504
5
red
1171
6
468
1144
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
651
13 karin 650
14 sumida 641
15
homan
633
16 DELIGHT 571
17
h_tanaka
519
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.