2011-11-09 75 views
2

準備好的發言一些解釋閱讀此頁http://www.php.net/manual/en/mysqli-stmt.bind-result.php需要關於PHP

我得到了一些問題有關PS

  • 在示例中我沒有看到$stmt = $db->stmt_init();是創建新實例,它需要( 添加$stmt=$db->stmt_init()行)在每個 聲明的開始和$ stmt->關閉在最後或根本沒有關係:我 可以從$stmt = $mysqli->prepare("...
  • 我可以在代碼的開始處創建語句對象1次,並且使用它的所有代碼長度爲 ?
+1

你可以做一個' - > prepare()'調用。它會在內部爲你做一個stmt_init。你應該爲每一個你正在運行的查詢準備一個新的語句。 –

+0

手術後需要封閉嗎? –

+0

只有當你正在做一個長時間運行的腳本。 PHP有相當不錯的清理,並會在函數返回和/或腳本退出時摧毀任何剩餘的垃圾。 –

回答

4

由於mysqli_prepare()使用鏈接標識符和要運行的查詢創建對象,因此不需要使用mysqli_stmt::init

使用mysqli_stmt::init的優點是例如在配置文件中創建對象的實例。任何隨後需要/包含的腳本都會有一個查詢對象可供使用,從而減少了需要編寫的代碼量。

第二個問題:是的。將對象視爲具有從初始化的代碼行到腳本代碼的最後一行或調用其魔術方法時的生命週期。它可以在創建後隨時使用,允許您不斷更改查詢並使用同一對象執行更多代碼。

請注意:每次查詢後(必須經過結果),您必須始終使用mysqli_stmt::close。這將清除對象查詢和結果集,將對象重新初始化爲首次創建時所處的相同狀態。

希望有所幫助。

+0

http://chat.stackoverflow.com/rooms/4840/php-ps –