バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > 管理機能 > DB処理でエラーが発生しました。MAX_JOIN_SIZEについて

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kono
投稿日時: 2017/4/7 20:40
対応状況: −−−
半人前
登録日: 2012/3/14
居住地:
投稿: 24
DB処理でエラーが発生しました。MAX_JOIN_SIZEについて
[EC-CUBE] 2.13.2
[レンタルサーバ] iClusta+
[OS] Linux バージョン不明
[PHP] PHP 5.6.25
[データベース] MySQL 5.1.47
[WEBサーバ] Apache2.2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

お世話になります。
下記エラーが解消されずに困っております。

[Native code: 1104]
[Native message: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay]

過去の情報や検索から、data/class/SC_Query.phpの80行目、もしくは84行目に
$this->query("SET SQL_BIG_SELECTS=1");を記述すればエラーの解消がされるとの情報だったので、やってみましたが

Fatal error(E_ERROR): Call to a member function sfChangeMySQL() on null on
というエラーがでてしまい、お手上げ状態です。

参照したURLは
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=9179&forum=11
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=13758&forum=11

記述する行が悪いのでしょうか。

if ($new) {
$this->conn = MDB2::connect($dsn, $options);
} else {
$this->conn = MDB2::singleton($dsn, $options);
}
if (!PEAR::isError($this->conn)) {
$this->conn->setCharset('utf8');
$this->conn->setFetchMode(MDB2_FETCHMODE_ASSOC);
$this->query("SET SQL_BIG_SELECTS=1");
}

ホスティング会社へ確認した際には、$this->query("SET SQL_BIG_SELECTS=1");の後に
SET SQL_MAX_JOIN_SIZE=10000を記述してはどうか、とアドバイスをいただきました。
(エラーが解消されるかは不明だけど、以前も同じ問合せがあった際に、上記のような設定をしていたお客様がいたとのこと。)

$this->query("SET SQL_BIG_SELECTS=1");
$this->query("SET SQL_MAX_JOIN_SIZE=10000");

で試してみても、同じFatal errorが出てしまいます。

皆さんのどうかよろしくお願いいたします。
red
投稿日時: 2017/4/8 7:57
対応状況: −−−
登録日: 2010/2/15
居住地:
投稿: 1076
Re: DB処理でエラーが発生しました。MAX_JOIN_SIZEについて
SC_DB_DBFactory_MYSQL.php の 365辺りに
$objQuery->exec("SET SQL_BIG_SELECTS=1");
と書くと動きそうな気がします


----------------
EC-CUBEのカスタマイズ承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

kono
投稿日時: 2017/4/10 11:57
対応状況: 確認中
半人前
登録日: 2012/3/14
居住地:
投稿: 24
Re: DB処理でエラーが発生しました。MAX_JOIN_SIZEについて
お返事ありがとうございます。

public function getDummyFromClauseSql()
{
$objQuery->exec("SET SQL_BIG_SELECTS=1");
return 'FROM DUAL';
}

と追記して確認しましたが、同じエラーが表示されております。
red
投稿日時: 2017/4/10 15:57
対応状況: −−−
登録日: 2010/2/15
居住地:
投稿: 1076
Re: DB処理でエラーが発生しました。MAX_JOIN_SIZEについて
$objQuery->exec('SET SESSION storage_engine = InnoDB');
と書いてある行があると思うので、その下にいれてください


----------------
EC-CUBEのカスタマイズ承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

kono
投稿日時: 2017/4/10 16:53
対応状況: 解決済
半人前
登録日: 2012/3/14
居住地:
投稿: 24
Re: DB処理でエラーが発生しました。MAX_JOIN_SIZEについて
redさん、ありがとうございます!

エラーは出ず、正常に表示されました。ありがとうございます。

SC_DB_DBFactory_MYSQL.php

/**
* 各 DB に応じた SC_Query での初期化を行う
*
* @param SC_Query $objQuery SC_Query インスタンス
* @return void
*/
public function initObjQuery(SC_Query &$objQuery)
{
$objQuery->exec('SET SESSION storage_engine = InnoDB');
$objQuery->exec("SET SQL_BIG_SELECTS=1");
$objQuery->exec("SET SESSION sql_mode = 'ANSI'");
}

こうしないと解決できなかったことなんですね。
私では到底辿りつけない情報を教えていただき、感謝いたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は20,581名です
総投稿数は83,591件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1662
4
yuh
1430
5
red
1076
6
fukap
907
7
shutta
827
8
468
801
9 ramrun 789
10
tsuji
784
11
umebius
725
12
tao_s
651
13 karin 641
14 sumida 638
15
homan
633
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

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

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