如何使用cakephp v3.x获得MAX_JOIN_SIZE

时间:2016-11-22 15:33:15

标签: mysql cakephp

当我将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时解决这个问题吗?我已经尝试将以下代码放在app / src / Model / AppModel.php中:

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

但这似乎没有任何效果。

1 个答案:

答案 0 :(得分:0)

CakePHP 3.0不再使用AppModel了。你真的应该read the migration guide。通过Model.beforeFind上的事件监听器或作为行为来实现它。

进一步将SQL_BIG_SELECTS设置为1对我来说似乎是不良做法。你不应该解决这些症状,但要解决原因:弄清楚你的查询有什么问题

MySQL - SQL_BIG_SELECTS,答案很好。