gpt4 book ai didi

MySQL MAX_JOIN_SIZE 错误

转载 作者:可可西里 更新时间:2023-11-01 06:39:35 25 4
gpt4 key购买 nike

我代表遇到此问题的一小部分用户问这个问题。

一旦他们使用的脚本获得第 21 个 ID,就会生成以下错误:

The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay

我尽可能多地研究了这个并找到了一些答案:http://dev.mysql.com/doc/refman/5.0/en/set-option.html

问题是他们在共享主机上,所以他们不能更改他们的 MySQL 设置来修复错误。

有什么我可以写到我的脚本中的,这样他们就不会遇到这个问题吗?

这是根据加载的模块生成数据库查询的函数: $sql = 'SELECT a.id as id, a.address as address';

        $query  = 'SELECT'
. ' name AS module_name'
. ', databasename AS module_database'
. ', pregmatch AS module_pregmatch'
. ', pregmatch2 AS module_pregmatch2'
. ', html AS module_html'
. ', sqlselect AS database_sqlselect'
. ', sqljoin AS database_sqljoin'
. ', sqlupdatewithvalue AS database_sqlupdatewithvalue'
. ', sqlupdatenovalue AS database_sqlupdatenovalue'
. ' FROM #__aqsgmeta_modules'
. ' WHERE enabled = 1'
. ' ORDER BY id';
$db->setQuery($query);
$results = $db->loadObjectList();
if (count($results) != 0) {
foreach ($results as $result) {
$sqlselect .= ', ';
$sqlselect .= $result->database_sqlselect;

$sqljoin .= ' ';
$result->database_sqljoin = preg_replace('/\{DATABASENAME\}/Ui', $result->module_database, $result->database_sqljoin);
if (!(preg_match("/" . $result->database_sqljoin . "/Ui", $sqljoin)))
$sqljoin .= $result->database_sqljoin;
}
}

if ($use_sh404sef)
$sqlselect .= ', g.oldurl AS sefurl';
$sql .= $sqlselect;
$sql .= ' FROM #__aqsgmeta_address AS a';
$sql .= $sqljoin;

if ($use_sh404sef)
$sql .= ' LEFT JOIN #__redirection AS g ON g.newurl = a.address';

$sql .=
//. ' WHERE a.id IN (' . $cids . ')'
' WHERE a.id = ' . $id
. ' ORDER BY a.address asc,a.id '
;
$db->setQuery($sql);
$rows = $db->loadObjectList();

最佳答案

MAX_JOIN_SIZE 是共享主机上常用的安全措施。

它不会让您不小心运行会挂起服务器的长查询。

发出这个命令:

SET SQL_BIG_SELECTS = 1

在运行查询之前,您知道会返回很多值。

关于MySQL MAX_JOIN_SIZE 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/966815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com