PHP无法从mysql获取数据

时间:2015-02-05 10:33:23

标签: php mysql pdo

我正在使用PDO连接到数据库。 我的Connect类看起来像这样

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

有时当我尝试使用这个类从mysql获取数据时,它可以工作,但有时候不会。

当我试图转储全班时,我得到了这个

对象(连接)#3(2){[“error”:“Connect”:private] => NULL [“db”] =>对象(PDO)#4(0){}}

我无法理解这是什么问题。

1 个答案:

答案 0 :(得分: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();
  }

  }
 }
相关问题