2016-11-22 69 views
0

我得到这个当我在我的CakePHP V3的应用程序部署到以下使用max_join_size错误共同主办:如何获得使用CakePHP 3.x版回合使用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时如何避免这种情况?我曾尝试将以下代码放在app/src/Model/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