2013-06-18 36 views
0

如果我有一個重定向頭,可以關閉連接到服務器後的連接嗎? 例如,什麼是下面的命令的最佳順序:SQL Server連接何時應該在腳本中關閉?

  • header('Location: example.com');
  • mysqli_stmt_close($stmt);
  • mysqli_close($link);

如果所有這些事情儘快完成儘可能還是確定把他們在腳本的結尾?

編輯:什麼是exit?如果腳本自然結束(與?>)是exit仍然necececary?

+1

除非它是一個持久連接,它將自動關閉。 'header'後面唯一需要的是'exit;',請使用正確的完整URL。 – PeeHaa

回答

1

你通常exit重定向,像這樣

header('Location: example.com'); 
exit; 

後直奔所以這將是靠近你的腳本結束。

在完成資源配置後,在退出之前應放置其他配置。但是,PHP應該在你之後收拾。如果你沒有明確地關閉語句或鏈接,PHP會做,所以你可能根本不需要它們。

+0

糟糕 - 沒有看標題的內容!在這之後你通常會退出:'header('Location:example.com');' – 2013-06-18 22:36:40

+0

頭部朝向腳本的底部,因爲來自SQL服務器的數據用於設置會話變量,頁面重定向到。如果重定向在本頁其餘部分之前完成,那麼重定向的頁面在設置之前是否可以嘗試使用會話變量? – Celeritas

+0

@Celeritas - 你沒有發佈任何代碼,所以上下文不清楚。你是對的 - 我會調整答案。 – 2013-06-18 22:57:54

1

你根本不需要做。

header('Location...之後,您應該立即使用exit。當腳本自動退出時,打開的連接會關閉。不過,您可以手動關閉它們,然後使用exit

如果在長時間運行的腳本中連接不足,則只需手動關閉連接,但在此時可能會遇到其他問題。