3

あなたが取得する場合:

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

Cake php アプリとデータベースを xampp localhost からリモート サーバーにアップロードした後。

Cake データベースをローカル マシンの新しいデータベースにインポートしようとすると、正常に動作します。そのため、インポートされた情報であることがわかりませんでした。

これを修正する方法がわかりませんでした。以下のように簡単に修正できる、単純で一般的な問題です。

4

3 に答える 3

4

たくさんの髪の毛を引っ張った後、私の親友であるten1の助けを借りて、cakephp IRCチャットで問題/修正を見つけることができました.

これが私の場合のcakephp固有の問題である場合、考えられないことをしてコアを編集する必要があります。

編集する必要があるファイルは AclNode.php です。次の場所にあります: /lib/Cake/Model/AclNode.php

113行目の前に行を追加する必要があります

112    }
                $db->query('SET SQL_BIG_SELECTS=1'); //Add this line
113             $result = $db->read($this, $queryData, -1);
114             $path = array_values($path);

これは通常、共有ホスティングを使用するサーバーでのみ問題になります。

于 2012-12-12T06:24:09.420 に答える
3

次のように、コア ファイルを編集する代わりに、app/models/app_model.php ファイルに beforeFind メソッドを追加することができます。

function beforeFind()   {
    $this->query('SET SQL_BIG_SELECTS=1');
}
于 2013-06-03T07:41:50.550 に答える