如何在不关闭数据库连接的情况下释放DBAL查询中的数据?

问题描述 投票:0回答:1

我在Symfony 2.8版本和PHP中使用DBAL来查询数据库中的数据,但是当我得到结果后,我不再需要它们,我想释放可能被缓存的数据,并等待我去检索。

    // I've already opened the database connection somewhere before this code is executed.

    $s = 'SELECT * FROM MyTable;';
    $conn = $this->get( 'database_connection' );
    $query = $conn->executeQuery( $s );
    $data = $query->fetch();

    // At this point $data contains a row from the database or is FALSE.

    unset( $data, $query ); // This will tell php that I don't need these variables.

可能会有很多行的缓存数据等待着从数据库服务器中检索,占用了我不愿意浪费的资源。 我怎样才能释放未取回的查询数据?

我不想关闭数据库连接,因为我将使用它来运行这个或其他查询,直到用户退出我的Web应用程序或会话超时。

谢谢您

php symfony php-5.6 symfony-2.8 dbal
1个回答
0
投票

就像在原帖的评论中写的那样

$query->closeCursor()

可以用来允许DBAL(和底层连接)在不关闭连接的情况下释放待处理数据占用的内存。

© www.soinside.com 2019 - 2024. All rights reserved.