当前位置: 首页 > 面试题库 >

PDO连接测试

漆雕昊天
2023-03-14
问题内容

我正在为我的一个应用编写安装程序,我希望能够测试一些默认数据库设置。

使用PDO可以测试有效和无效的数据库连接吗?

我有以下代码:

try{
            $dbh = new pdo('mysql:host=127.0.0.1:3308;dbname=axpdb','admin','1234');
            die(json_encode(array('outcome' => true)));
        }catch(PDOException $ex){
            die(json_encode(array(
                'outcome' => false,
                'message' => 'Unable to connect'
            )));
        }

我遇到的问题是该脚本尝试连接,直到60秒的脚本执行时间用完,而不是说它无法连接到数据库。

谢谢


问题答案:

您需要在连接数据库时设置错误模式:

try{
    $dbh = new pdo( 'mysql:host=127.0.0.1:3308;dbname=axpdb',
                    'admin',
                    '1234',
                    array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    die(json_encode(array('outcome' => true)));
}
catch(PDOException $ex){
    die(json_encode(array('outcome' => false, 'message' => 'Unable to connect')));
}

有关更多信息,请参见以下链接:

将MySQL与PDO结合使用

错误和错误处理



 类似资料:
  • 我使用PDO抽象类。我想知道是否有必要每次都为变量空,或者当脚本结束时它是否会这样做? 您还可以告诉我,对于这种类型的结构,取消的最佳方法是什么?

  • 我想建立一个帖子和评论系统。 帖子运行良好,但评论无效 PHP错误:致命错误:C:\xampp\htdocs\index.php:133堆栈跟踪中带有无效数据源名称的未捕获异常“PDOExc0019”:#0 C:\xampp\htdocs\index.php(133): PDO- 这是表的元素。请帮忙。

  • 问题内容: 我有一个旧版PHP / MySQL应用程序,它调用mysql_connect()。现有的大量下游代码使用此连接直接或通过包装进行调用。 对于我在应用程序上开发的新代码,我想开始使用PDO。 如果我使用相同的主机/用户/密码/ dbname凭据建立PDO连接,那么我是否很幸运,在幕后,PHP将重新使用原始连接?还是PHP将创建与服务器的两个不同的连接(虽然完全可以理解,但这是不希望的)?

  • 问题内容: 我不时看到有关连接数据库的问题。 大多数答案不是我做的方式,否则我可能只是无法正确获得答案。无论如何; 我从未考虑过,因为我的工作方式对我有效。 但是这里有个疯狂的想法;也许我做错了所有,如果是这样的话;我真的很想知道如何使用PHP和PDO正确连接到MySQL数据库并使其易于访问。 这是我的做法: 首先,这是我的文件结构 (向下精简) : index.php 在最顶部,我有。 load

  • 问题内容: 我正在使用PDO从MySQL服务器获取数据。我注意到的是:如果MySQL服务器不可用,则此代码返回异常 实际上 需要(相对)长的时间: 如果使用MySQL,则发生异常(SQLSTATE [HY000] [2003]无法在…上连接到MySQL服务器)仅需2分钟以上,而在PostgreSQL上则需要30秒(SQLSTATE [08006] [7]超时已过期) )。 我尝试使用PDO ::

  • 我从一个Zend网站得到的响应非常慢,xdebug向我显示了类doctor\DBAL\Driver\pdo连接上的20.000ms(20秒)延迟。该类的源代码如下所示: 是什么导致了20秒的连接时间?重要的是要注意,我有其他网站在同一个服务器上使用PDO,但只有Zend的网站有这个问题。