当我将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');
}
但这似乎没有任何效果。
答案 0 :(得分:0)
CakePHP 3.0不再使用AppModel
了。你真的应该read the migration guide。通过Model.beforeFind
上的事件监听器或作为行为来实现它。
进一步将SQL_BIG_SELECTS设置为1对我来说似乎是不良做法。你不应该解决这些症状,但要解决原因:弄清楚你的查询有什么问题。
见MySQL - SQL_BIG_SELECTS,答案很好。