2009-11-06 2 views
0

이전 게시글 here을 참조하십시오. 그에 따라 변경되었지만 오류가 발생했습니다. 이 코드의 오류를 알아내는 데 도움을주십시오. 내 IDE (Aptana에)이 코드의 많은 줄에 빨간색 밑줄을주고있다 : 나는 알사용자 정의 오류 처리기 관련 문제

<?php 

/* Include dependency */ 
require_once("./Config/dbconfig.php"); 

abstract class dbconnection 
{ 
    var $conn; 
    try 
    { 
     //Opens connection for a MySQL DB 
     public function OpenConnection() 
     { 
      $conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
       or die (throw new DB_Exception_Handler('Cannot connect to DB: ' . $thisException->getMessage() . '.')); 
      mysql_select_db(DB_NAME) or 
      die (throw new DB_Exception_Handler('Cannot connect to DB: ' . $thisException->getMessage() . '.')); 

     } 

     //Closes connection for a MySQL DB 
     public function CloseConnection() 
     { 
      mysql_close($conn); 

     } 
    } 
    catch(DB_Exception_Handler($thisException) 
    { 
     $thisException->ShowError(); 
    } 
} 

class DB_Exception_Handler extends Exception 
{ 
    public function ShowError() 
    { 
     echo "<script>alert('". $this->getMessage() ."');</script>"; 
    } 
} 
?> 

답변

2

상황이 클래스 내에서가 아니라 방법 내부의 try catch 블록이다. 그리고 문자열이나 int (die())를 기다리고있는 함수 호출 내에서 새로운 예외를 throw합니다.

@ 기호를 사용하면 오류 메시지가 표시되지 않으므로 두 데이터베이스 함수 모두 실패하면 false를 반환합니다.

또한 현재 범위에 존재하지 않는 참조 $ thisException에서 함수를 호출하고 있습니다. 그러나 이것은 모든 코드가 여기에있는 것은 아니기 때문일 수 있습니다.

<?php 

/* Include dependency */ 
require_once("./Config/dbconfig.php"); 

abstract class dbconnection { 
    var $conn; 

     //Opens connection for a MySQL DB 
     public function OpenConnection() { 
      $conn = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
      if(!$conn) { 
       throw new DB_Exception_Handler('Cannot connect to DB: ' . mysql_error() . '.'); 
      } 
      if(mysql_select_db(DB_NAME) == false) { 
       throw new DB_Exception_Handler('Cannot connect to DB: ' . mysql_error() . '.'); 
      } 

     } 

     //Closes connection for a MySQL DB 
     public function CloseConnection() 
     { 
       mysql_close($conn); 

     } 

} 

class DB_Exception_Handler extends Exception 
{ 
    public function ShowError() 
    { 
     echo "<script>alert('". $this->getMessage() ."');</script>"; 
    } 
} 
?> 
관련 문제