-1

PHP mysql_query function doesn't allow multiple queries, which limits maximal report complexity. What is the best practice, if I need really complex reports generated, which require multiple temp tables and multiple queries?

UPDATE: My question is more about how to use MySQL complex queries in PHP, if mysql_query only allows single query?

4

3 に答える 3

1

PHP mysql_query 関数は複数のクエリを許可しないため、レポートの複雑さが最大限に制限されます

私の経験ではそうではありません。

一時テーブルは、セッションの期間中利用できます - レポートを作成するために一時テーブルを使用したい場合 (サブクエリが利用可能であるため、それらは必須ではありませ) 何が問題なのですか...

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

または、マテリアライズド ビューを作成するためにストアド プロシージャを使用しますか?

于 2012-04-12T08:29:49.053 に答える
1

複数のクエリを実行する場合はmysqli_multi_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();
?>

参照: mysqli_multi_query

于 2012-04-12T08:40:28.183 に答える
0

「最大のレポートの複雑さ」とはどういう意味ですか? 今はSSRSを使っています。しかし、これはマイクロソフトのソリューションです。Reportico Toolsが役立つかもしれないとググってみました。代わりに、ZF (たとえば) には、データベースと対話するための巨大な機能が含まれています。おそらく、この記事はあなたを助けることができます.

于 2012-04-12T08:14:32.303 に答える