使用类中的PDO连接数据库

时间:2017-03-16 08:36:01

标签: php mysql pdo

我有两个文件file1.php和database.php。我有一个班级' Connection'在database.php文件中。我将此函数称为将查询传递给类' bar'。但我得到两个错误:

1.Notice: Undefined variable: conn... on line 22
2.Fatal error: Cannot access empty property in.. on line 22

这些是我正在使用的代码。谢谢。

file1.php

require_once('database.php');
$c = new Connection();
$c->bar("Select id, firstname, lastname from users");
$c->execute();

database.php 

class Connection{
    public $conn;

    public function __construct()
    {
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "testing_pdo";
        try {
            $this->conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
            $this->conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
            $this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        } catch (Exception $e) {
            echo 'ERROR: ' . $e->getMessage();
        }
    }
    public function bar($sql)
    {
        $this->conn->prepare($sql);
        return $this->conn->execute();
    }
}

1 个答案:

答案 0 :(得分:0)

我终于成功了。我在这两个文件中做了一些改动。

database.php

class Connection{
    private $servername = "localhost";
    private $username = "root";
    private $password = "";
    private $dbname = "testing_pdo";

    private $conn;
    private $error;
    private $stmt;


    public function __construct()
    {
        try {
            $this->conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
            $this->conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
            $this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        } catch (Exception $e) {
            $this->error = $e->getMessage();
        }
    }
    public function bar($sql)
    {
        $this->stmt = $this->conn->prepare($sql);
    }

    public function resultset(){
        $this->execute();
        return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}

file1.php

include ('database.php');
$c = new Connection();
$c->bar("Select id, firstname, lastname from users");
$c->resultset();