2011-05-21 132 views
15

在php中有一个mysql函数mysql_free_result(); 我没有找到任何类似的PDO功能。pdo免费结果

是否有一个pdo函数来释放数据库提取的结果,或者当我调用$stmt->fetch()数据时,结果集是否会自动请求并释放?

有人可以解释我的本地mysql和pdo之间的区别吗?

回答

14

最接近的方法是关闭PDO语句的游标。

http://us.php.net/manual/en/pdostatement.closecursor.php

+0

因此,pdo不需要刷新大型结果集? – 2011-05-22 09:44:06

+1

对于某些驱动程序,在创建另一个驱动程序之前,需要关闭所有结果集。 – dqhendricks 2011-05-22 16:38:59

+1

不是*只是*一些驱动程序 - 驱动程序提供的某些*设置需要在关闭另一个查询之前关闭结果集,例如关闭MySQL的['PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY'](http://us2.php.net/手动/ EN/ref.pdo-mysql.php#PDO-mysql.constants)。谢天谢地,你可以调用'closeCursor',它不会采取行动时什么也不会成功。否则,简单地取消设置包含语句句柄的变量将清除。 – Charles 2011-05-23 18:36:39

3

您可以将对象变量设置为null。我想,GC会破坏PDO Statement实例。

+5

Lol。 “我猜”。非常好。 :) – Jakar 2015-09-10 19:38:21