2011-05-21 92 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