2016-11-22 61 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