【发布时间】:2021-12-06 17:38:17
【问题描述】:
我正在使用 PHP 建立与使用 PDO 的 MYSQL 数据库的连接。我不断收到此错误:
Uncaught Error: Call to a member function query() on null
我对这种方法很陌生,但为什么我从查询中得到一个空值?
这是调用类的代码:
<?php
$data = new Data;
echo $data->connect();
$view = new View;
echo $view->getData();
?>
这是我怀疑有问题的查询类:
<?php
class View extends Data {
public function getData() {
$sql = 'SELECT * FROM equipment';
$stm = $this->connect()->query($sql);
while ($row = $stm->fetch()) {
echo $row['manuName'] . '<br>';
}
}
}
?>
这是连接类:
<?php
class Data {
private $dbHost = DB_HOST;
private $dbUser = DB_USER;
private $dbPass = DB_PASS;
private $dbName = DB_NAME;
private $dbHandler;
private $error;
public function connect() {
$con = 'mysql:host=' . $this->dbHost . ';dbname=' . $this->dbName;
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
try {
$this->dbHandler = new PDO($con, $this->dbUser, $this->dbPass, $options);
} catch (PDOException $e) {
$this->error = $e->getMessage();
echo $this->error;
}
}
}
我没有看到我的错误。如果有人能明白为什么我无法提取数据。
谢谢
【问题讨论】:
-
显然
$this->connect()返回 nothing -
但是您不应该每次运行查询时都再次连接...
-
亲爱的 u_mulder 和 ADyson 请阅读我的回答,如果您有任何意见,请告诉我