【问题标题】:Using previous PDO establishment with persistent connection使用具有持久连接的先前 PDO 建立
【发布时间】:2011-05-02 16:18:33
【问题描述】:

我有一个带有登录表单的网站。当登录表单页面加载时,我创建一个新的 PDO 对象以查看连接是否正常。如果成功打开连接,查看器将看到一个登录表单。如果不成功,他们将收到一条消息说服务器已关闭。

然后他们填写详细信息并单击登录。登录过程是通过 AJAX 进行的,因此页面不会重新加载,JavaScript 会将其详细信息发送到服务器上的 PHP 文件。

如何使用我之前建立的连接?

我正在考虑使用持久连接,但我并不真正了解它的作用,所以我知道它是否对我有帮助。我不想创建一个新连接并检查它是否像我们之前所做的那样工作。

那么持久连接会起作用吗?我用 MySQL 阅读了它的 php.net 文档,但我不理解它,也找不到任何关于它与 PDO 一起使用的文档。

【问题讨论】:

标签: php pdo


【解决方案1】:

持久连接由 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(如上面链接中所述)。

【讨论】:

  • 感谢您的回复 - 我已经添加了持久代码。有没有办法检查连接是否打开?我不想创建一个新的,只想看看我创建的 1 可以从哪里访问。
  • 正如我所提到的,这是自动的。如果您未连接,则要连接,如果您已经连接,则使用当前连接。这将加快连接速度。无法查看连接是否已经存在。
【解决方案2】:

相信这个链接能让你更好地理解如何使用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..
}
?>

希望我理解正确,这对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2018-01-11
    • 2014-09-08
    • 2018-10-19
    • 1970-01-01
    • 2011-05-09
    • 2011-10-26
    相关资源
    最近更新 更多