2011-05-02 66 views
4

我有一個網站與登錄表單。當登錄表單頁面被加載時,我創建一個新的PDO對象來查看連接是否正常工作。如果成功打開連接,查看器將看到一個登錄表單。如果不成功,他們會收到一條消息,指出服務器已關閉。使用以前的持久連接的PDO建立

他們然後填寫自己的信息,然後點擊登錄。登錄過程通過AJAX進行,因此頁面不會重新加載,JavaScript會將其詳細信息發送到服務器上的PHP文件。

我怎樣才能使用我先前建立連接的?

我想使用持久連接,但我真的不明白它做什麼,所以我知道的想法,如果它會幫助我。我不想創建一個新的連接,並檢查它是否像我們以前那樣工作。

所以纔會持久連接工作?我使用MySQL閱讀了php.net文檔,但是我不明白它,並且找不到與PDO一起使用的任何文檔。

+3

另請參見[「在PDO中使用持久連接有什麼缺點?」](http://stackoverflow.com/questions/3332074/what-are-the-disadvantages-of-using-persistent-connection-in -pdo) – outis 2011-05-02 18:18:40

回答

4

持久連接由PHP自己處理。除了激活它之外,您不需要處理它。

如果你讀了以下頁面:http://us2.php.net/manual/en/pdo.connections.php,您將獲得有關如何激活持久連接信息。

<?php 
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true 
)); 
?> 

您需要在每次要「連接」數據庫時執行此行。如果連接已經存在,它將在引擎蓋下使用它。

現在,如果您想檢查連接是否正常工作,您必須使用try/catch(如上面鏈接中所述)。

+0

感謝您的回覆 - 我添加了持久代碼。有沒有辦法檢查連接是否打開?我不想創建一個新的,只想看看我創建的1可以從哪裏訪問。 – Chris 2011-05-02 16:37:46

+0

這是我自動提到的。如果您未連接,則需要連接,如果已連接,請使用當前連接。這將加速連接。沒有辦法看到連接是否已經存在於引擎蓋下。 – jsgoupil 2011-05-02 17:41:43

1

我相信這個鏈接會給你更好地瞭解如何使用PDO;

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

如果您在您的login.php需要的文件,如果你已經在所包含的必要的文件一個使用PDO建立的連接(可以稱之爲$ DB)你可以做一個簡單的檢查;

<?php 
if ($db) { 
//connection is established already 
}else { 
//connection is not established, try to connect to database last time, if you can't show error etc.. 
} 
?> 

我希望,我正確理解你,這將對你有所幫助。