生成复杂报告的良好实践(MySQL/PHP)

生成复杂报告的良好实践(MySQL/PHP),php,mysql,database-design,Php,Mysql,Database Design,PHP mysql_查询函数不允许多个查询,这限制了最大的报告复杂性。如果我需要生成需要多个临时表和多个查询的非常复杂的报告,那么最佳做法是什么 更新:如果MySQL\u query只允许单次查询,我的问题更多的是关于如何在PHP中使用MySQL复杂查询?关于“最大报告复杂度”是什么意思?现在我使用SSR。但这是微软的解决方案。我在谷歌上搜索了一下,也许对你有帮助。作为替代方案,ZF(例如)包含与数据库交互的巨大功能。也许我能帮你 PHP mysql_查询函数不允许多个查询,这限制了最大的报告复

PHP mysql_查询函数不允许多个查询,这限制了最大的报告复杂性。如果我需要生成需要多个临时表和多个查询的非常复杂的报告,那么最佳做法是什么

更新:如果MySQL\u query只允许单次查询,我的问题更多的是关于如何在PHP中使用MySQL复杂查询?

关于“最大报告复杂度”是什么意思?现在我使用SSR。但这是微软的解决方案。我在谷歌上搜索了一下,也许对你有帮助。作为替代方案,ZF(例如)包含与数据库交互的巨大功能。也许我能帮你

PHP mysql_查询函数不允许多个查询,这限制了最大的报告复杂性

根据我的经验,不是这样的

临时表在会话期间可用-如果您想使用临时表来编写报告(由于子查询的可用性,它们不是必需的),那么

 mysql_query('CREATE TEMPORARY TABLE workset ....
 mysql_query('INSERT INTO workset (...) SELECT ....
 mysql_query('UPDATE workset......
 ....
 mysql_query('SELECT * FROM workset....

或者使用存储过程创建物化视图?

如果您希望执行多个查询,那么为什么不使用
mysqli\u multi\u query
PHP手册中的示例:
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>
参考资料:

您可以始终使用PDO,它允许多个查询和多个语句。我认为您可以使用事务,临时表来获取您需要的任何报表。也许您可以给出一个查询示例,您不知道如何使用mysql\u查询?我不知道
mysql\u查询
PHP函数与创建复杂的mysql报表有什么关系。如果您需要多个查询的结果,那么您使用的库是错误的,而且也是过时的。正如@Truth所说,使用PDO。