2015-02-05 6 views
0

데이터베이스에 연결하기 위해 PDO를 사용하고 있습니다. 내 연결 클래스는 내가이 클래스를 사용하여 MySQL의 데이터를 얻을 때 때때로, 그것은 때로는 작동 어쩌려 구`t이다이PHP에서 mysql 데이터를 가져올 수 없습니다.

class Connect { 
private $error; 
public static $dbh; 
public $db; 

public function __construct() { 
    $host = "127.0.0.1"; 
    $dbName = "myproject"; 
    $dbUser = "root"; 
    $dbPass = ""; 

    try { 
     $this->db = new PDO("mysql:host={$host};dbname={$dbName}", $dbUser, $dbPass); 
     $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 

     $query = $this->db->prepare("SET NAMES UTF8"); 
     $query->execute(); 

    } catch (PDOException $e) { 
     return $e->getMessage(); 
    } 

} 
} 

$connect = new Connect(); 

것 같습니다. 나는 학급 전체를 덤프 할 때

, 난`이

객체 (연결) #을 받고 3 (2) {[ "오류": "연결"개인] => NULL [ "DB"] => 개체 (PDO) # 4 (0) {}}

무엇이 문제인지 이해할 수 없습니다.

+0

왜 이름을 설정하고 있습니까? – julekgwa

답변

0

먼저 하드 코딩을 피하기 위해 __contsruct 함수에서 변수를 제거하십시오. 이 클래스에서 새 객체를 만들면 데이터베이스 정보를 전달할 수 있습니다.

class Connect { 
private $error; 
public static $dbh; 
public $db; 

public function __construct($host,$database,$user,$password) { 


try { 
    $this->db = new PDO("mysql:host=$host;dbname=$database", $user, $password); 
    $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 
    $query = $this->db->prepare("SET NAMES UTF8"); 
    $query->execute(); 

} catch (PDOException $e) { 
    return $e->getMessage(); 
    } 

    } 
} 
관련 문제