【发布时间】:2019-05-29 12:43:03
【问题描述】:
我正在使用 MySQLi Procedural 从 MYSQL 数据库运行查询。我只看到了使用 MySQLi 面向对象的代码是如何做到的。
它在本地主机上完美运行,但在远程服务器上我收到一条错误消息,说我有超过 MAX_JOIN_SIZE 行。我用什么代码来修复这个错误?
我查看了所有与此错误有关的页面,虽然我知道问题所在,但我不知道如何解决它。我见过的所有示例都使用 MySQLi 面向对象的代码。我已经尝试限制(LIMIT 30)返回的记录数,但这没有任何区别。
<?php
$con=mysqli_connect("localhost","******","******","ps10");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query_rs4 = "SELECT * FROM student_data INNER JOIN users ON student_data.class = users.class INNER JOIN ext_writing_tbl ON student_data.id = ext_writing_tbl.id";
$rs4 = mysqli_query($con, $query_rs4)or die( mysqli_error($con) );
$row = mysqli_num_rows($rs4);
echo "There are " . $row . " students in this class";
?>
这是完整的错误消息。
SELECT 将检查超过 MAX_JOIN_SIZE 行;检查您的 WHERE 并使用 SET SQL_BIG_SELECTS=1 或 SET MAX_JOIN_SIZE=# 如果 SELECT 没问题。
它应该输出到一个表中。
【问题讨论】:
-
您可以更改数据库配置选项吗?
-
运行。尽可能快地从该主机运行。超卖超乎想象,你的问题才从这里开始
-
最有可能的索引在这里会有所帮助.. 发布表结构
SHOW CREATE TABLE table和EXPLAIN query.. 但它接缝你正在选择一个可能的大结果集.. -
大约有 1200 条记录。如果我限制记录数,它不起作用。问题是我加入了 3 个表。
标签: mysql