2016-06-17 69 views
3

我有以下一段代碼,我在INSERT之後重定向到MySQL數據庫。MySQL()函數close()在exit()之後仍然會被調用嗎?

if ($connect->query($dragon_sql) === TRUE) { 
    echo "You've picked the dragon book!"; 
    header('Location: index.php'); 
    exit(); 
} else { 
    echo "Error: " . $sql . "<br>" . $connect->error; 
} 

$connect->close(); 

我已經閱讀手冊頁exit

終止腳本的執行上。即使退出被調用,關閉函數和對象析構函數也會一直執行。

那麼close()是關閉函數還是對象析構函數?我無法通過閱讀PHP手冊頁來了解它。

+5

文檔說*「當PHP腳本執行完畢後,開放非永久性MySQL連接和結果集會自動**銷燬**所以,在顯式關閉打開的連接並釋放結果集是可選的時,建議這樣做。這會立即將資源返回給PHP和MySQL,這可以提高性能。「*由於連接是一個對象,因此close()是一個析構函數。 –

+0

@JayBlanchard謝謝!完全回答我的問題 – 8protons

+1

要回答標題中的問題(*與您的問題*中的問題不匹配),因爲腳本執行會在重定向後立即退出,所以不會調用close()。 –

回答

-1

exit()die()只是停止執行腳本的其餘部分。
所以它不是一個destrtructor。
它更關斷功能

的mysqli close()功能關閉到數據庫的連接..即使它說成是無用的,因爲連接已經由腳本結束時關閉。

+1

他問是否close()是析構函數或關閉函數,而不是exit()。 – GrumpyCrouton

相關問題