2
我正在关注视频并仔细检查所有代码,并且所有代码看起来都一样,但我得到这些错误。未定义的变量:pdo,调用成员函数prepare()null
错误:
说明:未定义变量:在QueryBuilder.php PDO线14上
致命错误:调用一个成员函数上的空制备()中QueryBuilder.php上线14
QueryBuilder.php:
class QueryBuilder
{
protected $pdo;
public function __construct($pdo)
{
$this->pdo = $pdo;
}
public function selectAll($table)
{
$query = $pdo->prepare("SELECT * FROM `$table`"); // --> LINE 14 <--
$query->execute();
return $query->fetchAll();
}
}
Connection.php:
class Connection
{
public static function make()
{
$servername = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "test";
try {
$pdo = new PDO("mysql:host=$servername;dbname=$dbName", $dbUsername, $dbPassword);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $pdo;
}
catch(PDOException $e){
die($e->getMessage());
}
}
}
的init.php:
require "database/Connection.php";
require "database/QueryBuilder.php";
require "app/Product.php";
$query = new QueryBuilder(Connection::make());
'$ table'需要被定义;这是一个变量。 –
@ Fred-ii-我在index.php中执行它,例如 - '$ products = $ query-> selectAll(“products”);' – Rudolph
尝试'$ query = $ this-> pdo-> prepare' –