バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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'");
}

こうしないと解決できなかったことなんですね。
私では到底辿りつけない情報を教えていただき、感謝いたします。
red
投稿日時: 2017/4/10 15:57
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
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 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/8 7:57
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
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/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が出てしまいます。

皆さんのどうかよろしくお願いいたします。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.