Php 测试PDO连接是否成功
我正在学习一个教程,该教程教我如何使用PDO通过php连接到mySQL数据库,我正在试图弄清楚我的连接是否良好。这是我的代码,但我不知道如何检查我是否连接 如何更新以下代码,使其返回“已连接”与“未连接”消息Php 测试PDO连接是否成功,php,pdo,Php,Pdo,我正在学习一个教程,该教程教我如何使用PDO通过php连接到mySQL数据库,我正在试图弄清楚我的连接是否良好。这是我的代码,但我不知道如何检查我是否连接 如何更新以下代码,使其返回“已连接”与“未连接”消息 <?php class Database { private static $dbName = 'benrud_carsData' ; private static $dbHost = 'localhost' ; private static $dbU
<?php
class Database
{
private static $dbName = 'benrud_carsData' ;
private static $dbHost = 'localhost' ;
private static $dbUsername = 'benrud_read5th';
private static $dbUserPassword = 'XXXXXXX';
private static $cont = null;
public function __construct() {
die('Init function is not allowed');
}
public static function connect()
{
// One connection through whole application
if ( null == self::$cont )
{
try
{
self::$cont = new PDO( "mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword);
}
catch(PDOException $e)
{
die($e->getMessage());
}
}
return self::$cont;
}
public static function disconnect()
{
self::$cont = null;
}
}
?>
如果您的连接失败,您将得到一个
PDOException
,并且当前正在通过使用异常消息进行处理,因此如果发生这种情况,您肯定知道它不起作用
如果您只需要查看它是否已经建立了连接,那么可以添加一个status方法来检查静态属性是否为null。我显示它返回一个布尔值,因此调用代码可以确定要显示的消息,但是如果您愿意,可以返回一条消息
public static function connectionStatus() {
return !is_null(self::$cont);
}
您希望返回什么消息?它看起来像
connect()
当前返回连接。如果您返回一条消息,它将不再返回连接,这是不好的。您应该看看Singlton
模式,它已经实现了一半。对于DB来说,多个Singlton模式更好。碰巧我戴上了它,还有作曲家。@esqew关于那个可能的副本的答案很有趣。根据我的经验,无论是否设置了PDO::ATTR_ERRMODE,构建新PDO时的连接失败都会引发PDOException。