バージョン選択

フォーラム

メニュー

オンライン状況

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

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
居住地:
投稿: 1059
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
居住地:
投稿: 1059
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ペイメント

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

統計情報

総メンバー数は19,623名です
総投稿数は82,108件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1632
4
yuh
1366
5
red
1059
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
782
10
umebius
671
11
tao_s
646
12 sumida 638
13
homan
633
14
468
615
15 karin 609
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.