在PDO中使用try和catch的最佳方法是什么

时间:2016-09-18 19:29:32

标签: php mysql pdo

我认为下面的代码是使用PDO在php中使用try和catch的最佳方式。

  

在catch中我描述了:行号,文件和错误消息

error_reporting(E_ALL);

try{

    // code that works

}

catch(PDOException $e) 
{ 
    $errormessage = '<p> 
            Regelnummer: '.$e->getLine().'<br /> 
            Bestand: '.$e->getFile().'<br /> 
            Foutmelding: '.$e->getMessage().' 
        </p>'; 

    trigger_error($errormessage); 
} 

如果有人知道更好的方法来尝试和捕获,请在下面写下来。

1 个答案:

答案 0 :(得分:0)

这是一个扩展PDO的类的简单示例,它可能会给你一些想法:

<?php

    //DATABASE CONNECTION CONFIGURATION:
    defined("HOST")         or define("HOST",           "localhost");
    defined("DBASE")        or define("DBASE",          "dbName");
    defined("USER")         or define("USER",           "root");
    defined("PASS")         or define("PASS",           "root");

    class DB extends PDO {

        /***
         * @var PDO
         */
        private static $dbHandle;

        public static function getInstance(){
            try {
                self::$dbHandle = new PDO('mysql:host='.HOST.';dbname='. DBASE,USER,PASS);
                self::$dbHandle->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
                return self::$dbHandle;
            }catch(PDOException $e){
                throw new Exception($e->getMessage());
            }
        }

        public static function getHandle(){
            if(!isset(self::$dbHandle)){
                self::$dbHandle = self::getInstance();
            }
            return self::$dbHandle;
        }
    }