2016-09-18 7 views
0

私は以下のコードは、PDOを使用してPHPで試してキャッチを使用するための最良の方法だと思います。私が説明するキャッチでPDOでtryとcatchを使用する最良の方法は

:行番号、ファイルおよびErrorMessageの

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); 
} 

誰かがしようとするとキャッチを書くためのより良い方法を知っている場合、下記のことを書いてください。ここで

+0

[タグ:PDO]チェックの情報ページ:https://stackoverflow.com/tags/をpdo/info – hjpotter92

+0

最良の方法は[** not try ** catch ** all](https://phpdelusions.net/pdo#errors) –

答えて

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; 
     } 
    } 
+0

です。試しにキャッチするよりも悪くしました。 –

+0

はそれですモノローグやコメントであるはずですか?後者の場合は、教育に気を配っていますか? – Poiz

関連する問題