简体   繁体   English

使用PDO数据库连接类来获取数据

[英]Using PDO database connection class to fetch data

class dbconnect extends PDO {
  private $dbengine   = 'mysql';
  private $dbhost     = 'localhost';
  private $dbuser     = 'root';
  private $dbpassword = 'root';
  private $dbname     = 'nesiojami';
  public $dbh = null;

  public function __construct() {
    try {
      $pdo = $this->dbh = new PDO("".$this->dbengine.":host=$this->dbhost; dbname=$this->dbname", $this->dbuser, $this->dbpassword);
      $pdo = $this->dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    }
    catch (PDOException $e) {
      $e->getMessage();
    }
  }
}

This is how I connecting to the database. 这就是我连接数据库的方式。

$clients = $pdo->query("SELECT client-name, client-surname FROM clients")->fetchAll(PDO::FETCH_ASSOC);

And I can't find a way how to fetch data with my connection to the database. 而且我找不到一种方法来获取与数据库的连接的数据。

call the PDO constructor in construct function of dbconnect class 在dbconnect类的构造函数中调用PDO构造函数

$con= dbconnect new ();

$clients = $con->query("SELECT client-name, client-surname FROM clients")->fetchAll(PDO::FETCH_ASSOC);

Read this question for more info 阅读此问题以获取更多信息

class DbConnect extends PDO {
    private $dbengine   = 'mysql';
    private $dbhost     = 'localhost';
    private $dbuser     = 'root';
    private $dbpassword = 'root';
    private $dbname     = 'nesiojami';
    public $dbh = null;

    public function __construct() {
        try {
            // since you are extending PDO, you have to call its constructor
            parent::connect($this->dbengine.":host=$this->dbhost; dbname=$this->dbname", $this->dbuser, $this->dbpassword);
            $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
        }
        catch (PDOException $e) {
            echo $e->getMessage();
        }
    }
}

Use it like this: 像这样使用它:

$pdo = new DbConnect;
$clients = $pdo->query("SELECT client-name, client-surname FROM clients")->fetchAll(PDO::FETCH_ASSOC);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM