2016-11-22 10 views
0

は、共有ホスティングCakePHPのバージョン3.xとのラウンドMAX_JOIN_SIZEを取得する:どのように私は私は私のCakePHPのv3のアプリを展開し、この次MAX_JOIN_SIZEエラーを取得しています

Error: SQLSTATE[42000]: Syntax error or access violation: 1104 The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay 

これは共通の問題のように思えるが、誰もが言うことができます私はcakephp v3.xを使用してこれをラウンドする方法は?私はアプリ/ SRC /モデル/ AppModel.phpに次のコードを入れて試してみました:

function beforeFind() { 
     $this->query('SET SQL_BIG_SELECTS=1'); 
    } 

が、これは何の影響も与えていないようです。

答えて

0

CakePHP 3.0は、AppModelをもう使用しません。あなたは本当にread the migration guideすべきです。 Model.beforeFindのイベントリスナーを介して、または動作として実装します。

さらにSQL_BIG_SELECTSを1に設定すると、が悪い練習になります。症状を回避して原因を解決しないでください。質問に間違いがないか確認してください。

回答が良いMySQL - SQL_BIG_SELECTSを参照してください。

+0

私はあなたのアドバイスを受け、私がしたいことを達成する別の方法を見つけました。私のオリジナルのソリューションはよりエレガントで、ジョイン数はばかげていませんでしたが、ちょっとホー... – pkbevans

関連する問題