我最近決定從MySQLi跳到PDO,並且有些事情對PDO準備好的語句感到困擾。關閉PDO語句
在庫MySQLi我會寫一個典型的取這樣的查詢:
$db = new mysqli("localhost", "user", "pass", "mydb");
$sql = "SELECT firstCol, secondCol FROM testTable WHERE thirdCol=?";
$stmt = $db->prepare($sql);
$stmt->bind_param("s", $thirdCol);
$stmt->execute();
while(($row = $stmt->fetch()))
{
//do something
}
$stmt->close();
$db->close();
當然是有合適的錯誤檢查。查詢後,我總是關閉語句和數據庫連接。當使用PDO時,我通過將數據庫處理程序設置爲null來關閉連接,如下所示:
$db = null;
但是聲明呢?我發現一個文章here,暗示使用unset
或closeCursor
。哪一個更好?我應該像連接一樣將它設置爲null
?
不要打擾,除非你有一個原因。通常不需要關閉/取消設置語句句柄。並且在執行期間多次打開和關閉數據庫連接甚至是毫無意義的。 – mario
@mario連接一段時間後連接是否自動關閉?當活動連接總數超過MySQL服務器允許的最大連接數時會發生什麼? – dimlucas
當PHP進程終止時,數據庫連接會自動關閉。無論如何,取消手柄並不會關閉手柄,而是由駕駛員進行緩衝。因此重新實施PDO類是多餘的。 – mario