我是 PDO 的新手。我看了几个视频。我想像以前一样使用我自己的数据库类。我想使用 PDO 而不是 mysql* 函数。我知道 mysql* 函数在 PHP 5.5 中已弃用
我不在处理我的旧数据库类。因为新手会更难。现在我只创建一个连接。我想选择我的产品。
这是我的代码:
class Database extends PDO {
private $_server = "localhost";
private $_user = "root";
private $_password = "";
private $_db = "demo";
private $_engine = 'mysql';
private $link = NULL;
public function __construct() {
$dsn = $this->_engine.':dbname='.$this->_db.';host='.$this->_server.';charset=utf8';
try {
$this->link = new PDO($dsn, $this->_user, $this->_password);
$this->link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
}
header('Content-Type: text/html; charset=utf-8');
$DB = new Database();
$sql = "SELECT * FROM product";
$q = $DB->query($sql);
while($r = $q->fetch(Database::FETCH_ASSOC)){
$products[] = $r;
}
echo "<pre>";
print_r($products);
echo "</pre>";
我无法取回我的产品。我收到错误。
警告:PDO::query(): SQLSTATE[00000]: No error: PDO 构造函数未在 /var/www/dt/includes/class/class.database.php 第 52 行调用
致命错误:在第 53 行的 /var/www/dt/includes/class/class.database.php 中的非对象上调用成员函数 fetch()
我的错误是什么?我该怎么办?